Цикл 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, время: 09:25. |