Квинт Игорь
Шрифт:
var x=prompt ("Введите число","5");
x=+x;
var i=1;
while(i<=x)
{
f=f*i;
i++;
}
alert(f);
</script>
</head>
<body>
</body>
</html>
Оператор do..while практически идентичен оператору while, но, поскольку в нем проверка условия осуществляется в конце, он гарантирует выполнение операторов по крайней мере один раз:
do
{
операторы
} while (выражение условия)
В листинге 11.16 представлен код, позволяющий найти факториал с помощью цикла do..while.
<html>
<head>
<title>Факториал с помощью оператора do..while</title>
<script>
var f=1;
var x=prompt ("Введите число","5");
x=+x;
var i=1;
do
{
f=f*i;
i++;
} while(i<=x)
alert(f);
</script>
</head>
<body>
</body>
</html>
С помощью конструкции for..in можно выполнить операторы почти для каждого свойства объекта. Синтаксис этого оператора:
for (свойство in объект)
{
операторы
}
Например, с помощью данного оператора можно произвести инкремент всех элементов массива (листинг 11.17).
<html>
<head>
<title>Пример использования оператора for..in </title>
<script>
var a= new Array (5,76,43,12,77,-5, 0);
for (var i in a)
{
a[i]++;
}
alert(a);
</script>
</head>
<body>
</body>
</html>
В ходе выполнения этого кода все элементы массива a увеличат свое значение на единицу (рис. 11.14).
Рис. 11.14. Инкремент элементов массива
Обратите внимание, что в цикле for..in не определяется свойство массива length.
Иногда в ходе выполнения цикла возникает необходимость прервать весь цикл или одну его итерацию. Для этой цели служат операторы break и continue. Оператор break полностью прекращает выполнение цикла и передает управление операторам, следующим за циклом. Оператор continue прерывает текущее выполнение цикла и переходит к выполнению следующего шага цикла. Различие в работе этих операторов продемонстрировано в листинге 11.18.
<html>
<head>
<title>Пример использования операторов выхода из цикла</title>
<script>
var a= new Array (5,0,2,0-3,0);
var b= new Array;
//Создаем бесконечный цикл
while(true)
{
var x=prompt ("Введите число","0");
//Преобразуем введенную строку в число
x=+x;
//Если введен ноль, то цикл прерывается
//Это единственный выход из бесконечного цикла
if (x==0) {break}
//Вложенный цикл, просматривающий все элементы массива
for (var i=0;i<a.length;i++)
{
//Проверяем значение элемента массива a
if (a[i]==0)
{
b[i]="-";
//Прерываем текущую итерацию цикла for, чтобы избежать
//деления на ноль
continue;
}
//Находим частное
b[i]=x/a[i];
}//Конец цикла for
alert(a+"\n"x+"\n"+b);
}//Конец цикла while
</script>
</head>
<body>
</body>
</html>
Данный код позволяет определить частное от введенного пользователем числа и элементов массива a. При этом в числе элементов этого массива могут быть нули, тогда необходимо в элемент массива с результатом b ввести прочерк (—) (рис. 11.15).
Рис. 11.15. Пример использования операторов выхода из цикла