- •1. Основные понятия
- •3.4.2. Окно с сообщением и кнопками ok и Cancel
- •3.4.3. Окно с полем ввода и кнопками ok и Cancel
- •3.6. Типы данных и инициализация переменных. Определение типа данных переменной
- •3.7. Операторы JavaScript
- •3.7.1. Математические операторы
- •3.7.2. Операторы присваивания
- •3.7.3. Двоичные операторы
- •3.7.4. Оператор обработки строк
- •3.8. Преобразование типов данных
- •3.9. Специальные символы. Разбиение сообщения в диалоговом окне на несколько строк
- •3.10. Массивы
- •3.11. Функции. Разделение программы на фрагменты
- •3.11.1. Основные понятия
- •3.11.2. Расположение функций внутри html-документа
- •3.11.3. Рекурсия. Вычисление факториала
- •3.11.4. Глобальные и локальные переменные
- •3.12. Условные операторы. Выполнение блоков кода только при соответствии условию
- •3.12.1. Операторы сравнения
- •3.12.2. Оператор ветвления if...Else. Проверка ввода пользователя
- •3.12.3. Оператор ? Проверка числа на четность
- •3.12.4. Оператор выбора switch
- •3.13. Операторы циклов. Многократное выполнение блока кода
- •3.13.1. Цикл for
- •3.13.2. Цикл while
- •3.13.3. Цикл do...While
- •3.13.4. Оператор continue.
- •3.13.5. Оператор break. Прерывание цикла
- •3.14. Ошибки в программе
- •3.14.1. Синтаксические ошибки
- •3.14.2. Логические ошибки
- •3.14.3. Ошибки времени выполнения
- •3.15. Встроенные классы JavaScript
- •3.15.1. Основные понятия
- •3.15.2. Класс Global
- •3.15.3. Класс Number. Работа с числами
- •3.15.4. Класс String. Обработка строк
- •3.15.5. Класс Array. Работа с массивами и их сортировка
- •Многомерные массивы
- •Ассоциативные массивы. Перебор ассоциативных массивов
- •3.15.6. Класс Math. Использование математических функций
- •3.15.7. Класс Date. Получение текущей даты и времени. Вывод даты и времени в окне Web-браузера
3.13. Операторы циклов. Многократное выполнение блока кода
Предположим, нужно вывести все числа от 1 до 100 по одному на строку. Обычным способом пришлось бы писать 100 строк кода:
document.write("1<BR>");
document.write("2<BR>");
...
document.write("100<BR>");
При помощи циклов то же действие можно выполнить одной строкой кода:
for (1=1; i<101; i++) document.write(i + "<BR>");
Иными словами, циклы позволяют выполнить одни и те же выражения многократно.
3.13.1. Цикл for
Цикл for используется для выполнения выражений определенное число раз. Имеет следующий формат:
for (<Начальное значение>; <Условие>; <Приращение>) {
<Выражения>
}
Здесь используются следующие конструкции:
-
<Начальное значение> присваивает переменной-счетчику начальное значение;
-
<Условие> содержит логическое выражение. Пока логическое выражение возвращает значение true, выполняются выражения внутри цикла;
-
<Приращение> задает изменение переменной-счетчика при каждой итерации.
Более формально, последовательность работы цикла for такова:
-
Переменной-счетчику присваивается начальное значение.
-
Проверяется условие — если оно истинно, выполняются выражения внутри цикла, а в противном случае осуществляется выход из цикла.
-
Переменная-счетчик изменяется на величину, указанную в <приращении>.
-
Осуществляется переход к пункту 2.
Цикл выполняется до тех пор, пока <Условие> не вернет false. Если этого не случится, цикл будет бесконечным.
<Приращение> может не только увеличивать значение переменной-счетчика, но и уменьшать. Выведем все числа от 100 до 1:
for (i=100; i>0; i--) document.write(i + "<BR>");
<Приращение> может изменять значение переменной-счетчика не только на единицу. Выведем все четные числа от 1 до 100:
for (i=2; i<101; i+=2) document.write(i + "<BR>");
3.13.2. Цикл while
Выполнение выражений в цикле while продолжается до тех пор, пока логическое выражение истинно. Имеет следующий формат:
<Начальное значением-; while (<Условие>) { <Выражения> ; <Приращение >; }
Цикл while работает следующим образом:
-
Переменной-счетчику присваивается начальное значение.
-
Проверяется условие — если оно истинно, выполняются выражения внутри цикла, а в противном случае выполнение цикла завершается.
-
Переменная-счетчик изменяется на величину, указанную в <Приращении>.
-
Осуществляется переход к пункту 2.
Выведем все числа от 1 до 100, используя цикл while (листинг 3.21).
Листинг 3.21. Цикл while
var i=1;
while (i<101) {
document.write(i + "<BR>");
i++;
}
Внимание!
Если <приращение> не указано, то цикл будет бесконечным.
В <Приращении> не обязательно должна быть арифметическая операция. Например, при работе с базами данных в качестве <Приращения> будет перемещение к следующей строке, а условием выхода из цикла — отсутствие новых строк в базе данных. В этом случае <Начальным значением> будет первая строка базы данных.