Дронов Владимир
Шрифт:
Приведем еще два примера цикла со счетчиком:
for (i = 10; i > 0; i-) {
a += 3;
b = i * 2 + 1;
}
Здесь значение счетчика декрементируется. Начальное его значение равно 10. Цикл выполнится 10 раз и завершится, когда счетчик i будет содержать 0; при этом значения последнего будут последовательно уменьшаться от 10 до 1.
for (i = 2; i < 21; i += 2) b = i * 2 + 1;
А в этом примере начальное значение счетчика равно 2, а конечное — 21, но цикл выполнится, опять же, 10 раз. А все потому, что значение счетчика увеличивается на 2 и последовательно принимает значения 2, 4, 6… 20.
Цикл с постусловием
Цикл с постусловием во многом похож на цикл со счетчиком: он выполняется до тех пор, пока остается истинным условие цикла. Причем условие проверяется не до, а после выполнения тела цикла, отчего цикл с постусловием и получил свое название. Такой цикл выполнится хотя бы один раз, даже если его условие с самого начала ложно.
Формат цикла с постусловием:
do
<тело цикла>
while (<условие>);
Для задания цикла с постусловием предусмотрены ключевые слова do и while, поэтому такие циклы часто называют "циклами do-while".
Вот пример цикла с постусловием:
do {
a = a * i + 2;
++i;
} while (a < 100);
А вот еще один пример:
var a = 0, i = 1;
do {
a = a * i + 2;
++i;
} while (i < 20);
Хотя здесь удобнее был бы уже знакомый нам и специально предназначенный для таких случаев цикл со счетчиком.
Цикл с предусловием
Цикл с предусловием отличается от цикла с постусловием тем, что условие проверяется перед выполнением тела цикла. Так что, если оно (условие) изначально ложно, цикл не выполнится ни разу:
while (<условие>)
<тело цикла>
Для создания цикла с постусловием предусмотрено ключевое слово while. Поэтому такие циклы называют еще "циклами while" (не путать с "циклами do-while"!).
Пример цикла с предусловием:
while (a < 100) {
a = a * i + 2;
++i;
}
Прерывание и перезапуск цикла
Иногда бывает нужно прервать выполнение цикла. Для этого JavaScript предоставляет Web-программистам операторы break и continue.
Оператор прерывания break позволяет прервать выполнение цикла и перейти к следующему за ним выражению:
while (a < 100) {
a = a * i + 2;
if (a > 50) break;
++i;
}
В этом примере мы прерываем выполнение цикла, если значение переменной a превысит 50.
Оператор перезапуска continue позволяет перезапустить цикл, т. е. оставить невыполненными все последующие выражения, входящие в тело цикла, и запустить выполнение цикла с самого его начала: проверка условия, выполнение приращения и тела и т. д.
Пример:
while (a < 100) {
i = ++i;
if (i > 9 && i < 11) continue;
a = a * i + 2;
}
Здесь мы пропускаем выражение, вычисляющее a, для всех значений i от 10 до 20.
Функции
Функция — это особым образом написанный и оформленный фрагмент кода JavaScript, который можно вызвать из любого Web-сценария на данной Web-странице (повторно используемый код, как его часто называют). Так что, если какой-то фрагмент кода встречается в нескольких местах нашего Web-сценария, лучше всего оформить его в виде функции.
Собственно код, ради которого и была создана функция, называется телом функции. Каждая функция, кроме того, должна иметь уникальное имя, по которому к ней можно будет обратиться. Функция также может принимать один или несколько параметров и возвращать результат, который можно использовать в выражениях.
Объявление функций
Прежде чем функция будет использована где-то в Web-сценарии, ее нужно объявить. Функцию объявляют с помощью ключевого слова function: