Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.04.2014, 20:02
Новичок на форуме
Отправить личное сообщение для Mugla Посмотреть профиль Найти все сообщения от Mugla
 
Регистрация: 15.04.2014
Сообщений: 6

Цикл while в JavaScript.
Товарищи! Прошу помощи.

С помощью prompt ввести число от 1 до 50 p=prompt('Введите число от 1 до 50 ','')

Если число удовлетворяет этому промежутку (1 - 50) - закончить цикл, показав alert ('Вы ввели нужно число')

Если ввели число больше 50, вывести окно ввода еще раз, и до тех пор, пока пользователь не введет число в промежутке между 1 и 50.

Если нажать кнопку Cancel, завершить цикл, вывести alert ('Вы нажали Cancel')

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 15.04.2014, 20:04
Аватар для Makarov
Профессор
Отправить личное сообщение для Makarov Посмотреть профиль Найти все сообщения от Makarov
 
Регистрация: 08.07.2013
Сообщений: 212

Вроде сессия еще нескоро, а студенты уже валом пошли.

Покажите нам немножко своего кода, если он есть. Тогда может и поможем
Ответить с цитированием
  #3 (permalink)  
Старый 15.04.2014, 20:09
Новичок на форуме
Отправить личное сообщение для Mugla Посмотреть профиль Найти все сообщения от Mugla
 
Регистрация: 15.04.2014
Сообщений: 6

<html>
<head>
<title>While</title>
</head>
<body>
<script type="text/javascript">
<!--
p=prompt('Введите число от 1 до 50 ','') 
while (p<50) 
{
if (p>50)
p=prompt('Введите число от 1 до 50 ','')
if (p<50)
alert ('Вы ввели нужное число')
if (p==null)
alert ('Вы нажали Cancel')
}
//-->
</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 15.04.2014, 20:20
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Может наоборот?
while (p > 50)

Тип того:
do {
    var p = prompt('Введите число от 1 до 50 ','');
    if (p==null) {
        alert ('Вы нажали Cancel');
        break;
    }
    if (p < 50) alert ('Вы ввели нужное число');
} while (p > 50)
Ну и можно же и отрицательное число ввести, и не число...
Ответить с цитированием
  #5 (permalink)  
Старый 15.04.2014, 20:26
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Число должно быть от 1 до 50
Цитата:
while (p<50)
Ну вот у тебя и получается, что если вдруг число правильное - цикл будет продолжаться. Если неправильное - цикл закончится. Если уж строить таким образом, то поменяй "<" на ">".

Но вообще-то это делается так:
while (true) //Делаем бесконечный цикл. Да-да.
{
  //Не забывай оператор var при объявлении переменных!
  var input = prompt("Введите число от 1 до 50", ""); 
  
  if (input == null)
  {
    alert("Вы нажали cancel");
    break;  //Оператор break используется для досрочного завершения цикла.
  }
  input = parseInt(input); //parseInput преобраузет строку в число. Функция prompt возвращает именно строку, а нам нужно число.
  if (isNaN(input))
  {
     //Функция isNaN возвращает true, если аргумент - не число.
     continue; //Оператор continue используется для досрочного перехода к следующей итерации цикла.
  }

  if (input >= 1 && input <= 50)
  {
    alert("Вы ввели нужное число");
    break;
  }
}

Последний раз редактировалось Erolast, 15.04.2014 в 20:47.
Ответить с цитированием
  #6 (permalink)  
Старый 15.04.2014, 20:26
Новичок на форуме
Отправить личное сообщение для Mugla Посмотреть профиль Найти все сообщения от Mugla
 
Регистрация: 15.04.2014
Сообщений: 6

Супер! Но это же do while (
Ответить с цитированием
  #7 (permalink)  
Старый 15.04.2014, 20:36
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Но это же do while (
Для кого писалось?)
Сообщение от Erolast Посмотреть сообщение
while (true) //Делаем бесконечный цикл. Да-да.
{
  //Не забывай оператор var при объявлении переменных!
  var input = prompt("Введите число от 1 до 50", "");
   
  if (input == null)
  {
    alert("Вы нажали cancel");
    break;  //Оператор break используется для досрочного завершения цикла.
  }

  input = parseInt(input); //parseInput преобраузет строку в число. Функция prompt возвращает именно строку, а нам нужно число.
  if (isNaN(input))
  {
     //Функция isNaN возвращает true, если аргумент - не число.
     continue; //Оператор continue используется для досрочного перехода к следующей итерации цикла.
  }
 
  if (input >= 1 && input <= 50)
  {
    alert("Вы ввели нужное число");
    break;
  }
}
Я там пару ошибок допустил, из-за чего код не работал - пардон муа, исправил.

Последний раз редактировалось Erolast, 15.04.2014 в 20:47.
Ответить с цитированием
  #8 (permalink)  
Старый 15.04.2014, 20:37
Новичок на форуме
Отправить личное сообщение для Mugla Посмотреть профиль Найти все сообщения от Mugla
 
Регистрация: 15.04.2014
Сообщений: 6

Спасибо за подробное объяснение, но если жмем Cancel то цикл должен завершиться, а тут опять же запрашивает. Помоги еще немного
Ответить с цитированием
  #9 (permalink)  
Старый 15.04.2014, 20:40
Новичок на форуме
Отправить личное сообщение для Mugla Посмотреть профиль Найти все сообщения от Mugla
 
Регистрация: 15.04.2014
Сообщений: 6

Спасибо.
Ответить с цитированием
  #10 (permalink)  
Старый 15.04.2014, 20:43
Новичок на форуме
Отправить личное сообщение для Mugla Посмотреть профиль Найти все сообщения от Mugla
 
Регистрация: 15.04.2014
Сообщений: 6

Всем +. Еще раз спасибо!
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл javascript jeka123 Серверные языки и технологии 3 25.08.2013 11:53
Цикл из книги Javascript библия yourseowork Учебные материалы 8 19.08.2013 11:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Как поместить javascript в php цикл do{} while() galap Общие вопросы Javascript 4 09.04.2010 14:57