Цикл while в JavaScript.
Товарищи! Прошу помощи. :help: :cray:
С помощью prompt ввести число от 1 до 50 p=prompt('Введите число от 1 до 50 ','') Если число удовлетворяет этому промежутку (1 - 50) - закончить цикл, показав alert ('Вы ввели нужно число') Если ввели число больше 50, вывести окно ввода еще раз, и до тех пор, пока пользователь не введет число в промежутке между 1 и 50. Если нажать кнопку Cancel, завершить цикл, вывести alert ('Вы нажали Cancel') Спасибо. |
Вроде сессия еще нескоро, а студенты уже валом пошли.
Покажите нам немножко своего кода, если он есть. Тогда может и поможем |
<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> |
Может наоборот?
while (p > 50) Тип того: do { var p = prompt('Введите число от 1 до 50 ',''); if (p==null) { alert ('Вы нажали Cancel'); break; } if (p < 50) alert ('Вы ввели нужное число'); } 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; } } |
Супер! Но это же do while (
|
Цитата:
Цитата:
|
Спасибо за подробное объяснение, но если жмем Cancel то цикл должен завершиться, а тут опять же запрашивает. Помоги еще немного :)
|
Спасибо.
|
Всем +. Еще раз спасибо!
|
Часовой пояс GMT +3, время: 15:49. |