HTML, XHTML и CSS на 100%
Шрифт:
Оператор for служит для создания цикла. Он имеет следующий синтаксис:
for (выражение инициализации; выражение условия; выражение цикла)
{
операторы
}
Выражение инициализации обычно служит для задания начального значения счетчика цикла. Выражение условия позволяет прекратить выполнять цикл, когда условие перестанет выполняться, то есть примет значение false. Выражение цикла обычно осуществляет инкремент или декремент счетчика цикла. Любое из этих выражений может быть пропущено, но соответствующая точка с запятой должна стоять.
В листинге 11.14 представлен код, позволяющий найти факториал числа – n!=1*2*3*..*n.
<html>
<head>
<title>Факториал с помощью оператора for</title>
<script>
var f=1;
var x=prompt ("Введите число","5");
x=+x;
for(var i=1;i<=x;i++)
{
f=f*i;
}
alert(f);
</script>
</head>
<body>
</body>
</html>
В этом коде организуется цикл от 1 до x, при этом для простоты введенное значение не проверяется на допустимость, поэтому можно, например, получить значение Infinity (бесконечность) при большом значении x.
Оператор while сходен с оператором for, но он не производит инициализацию и инкремент счетчика в своем объявлении. Синтаксис этого оператора следующий:
while (выражение условия)
{
операторы
}
Если выражение условия в цикле while сразу ложно, то операторы не выполнятся ни разу.
В листинге 11.15 представлен код, позволяющий найти факториал с помощью цикла while.
<html>
<head>
<title>Факториал с помощью оператора while</title>
<script>
var f=1;
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;
//Если введен ноль, то цикл прерывается
Потерянный разум
Научно-образовательная:
политика
рейтинг книги
Иисус неизвестный
Научно-образовательная:
философия
рейтинг книги
Собрание сочинений. Том 8
Проза:
классическая проза
рейтинг книги
Золотая стрела
3. Дверь в преисподнюю
Фантастика:
научная фантастика
рейтинг книги
1917. Разложение армии
Военные тайны XX века
Научно-образовательная:
история
рейтинг книги
Последний реанорец. Том IV
3. Высшая Речь
Фантастика:
фэнтези
рейтинг книги
Северные сказки
Детские:
сказки
рейтинг книги
Сыщик-убийца
Детективы:
классические детективы
рейтинг книги
Я уже князь. Книга XIX
19. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
рейтинг книги
Последний реанорец. Том VII
6. Высшая Речь
Фантастика:
аниме
попаданцы
фэнтези
рейтинг книги
Последний Паладин. Том 14
14. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
рейтинг книги
Русские горки. Конец Российского государства
Великие противостояния
Научно-образовательная:
история
политика
рейтинг книги
Футуриф. Токсичная честность
Фантастика:
социально-философская фантастика
рейтинг книги