цикла выполнено, условие будет проверено снова, и, если оно все еще
дает true, тело цикла начнет выполняться опять. И так будет продол-
жаться, пока условие не даст false.
Считаем овец с помощью цикла while
Предположим, у вас проблемы со сном и вы решили посчитать овец.
Но раз уж вы программист, почему бы не написать программу, которая
будет считать овец за вас?
var sheepCounted = 0;
Sheep
while (sheepCounted < 10) {
counted —
console.log("Посчитано овец: " + sheepCounted + "!");
посчитанные
sheepCounted++;
овцы
}
console.log("Хрррррррррр-псссс");
Мы создали переменную sheepCounted
и задали ей значение 0. Дойдя до цикла
while в строке , мы проверяем, правда ли,
что sheepCounted меньше 10. Поскольку
0 меньше 10, выполняется код в фигурных
скобках (тело цикла, которое начинается
со строки ) и выражение "Посчитано
овец: " + sheepCounted + "!" выводится в консоль как «Посчитано
овец: 0!». Далее команда sheepCounted++ увеличивает значение
102 Часть I. Основы
sheepCounted на 1, мы возвращаемся к началу цикла, и все повторя-
ется снова:
Посчитано овец: 0!
Посчитано овец: 1!
Посчитано овец: 2!
Посчитано овец: 3!
Посчитано овец: 4!
Посчитано овец: 5!
Посчитано овец: 6!
Посчитано овец: 7!
Посчитано овец: 8!
Посчитано овец: 9!
Хрррррррррр-псссс
Тело цикла повторяется, пока sheepCounted не примет значение 10,
после чего условие становится ложным (false), ведь 10 не меньше 10.
И тогда программа переходит к строке, идущей после цикла, — в данном
случае на консоль выводится "Хрррррррррр-псссс".
Бесконечный цикл
Имея дело с циклами, помните: если условие никогда не даст false,
цикл будет повторяться бесконечно (по крайней мере до тех пор, пока
вы не закроете страницу в браузере). Например, не будь в теле цикла
строчки sheepCounted++;, в sheepCounted всегда был бы 0 и про-
грамма печатала бы:
Посчитано овец: 0!
Посчитано овец: 0!
Посчитано овец: 0!
Посчитано овец: 0!
...
Поскольку повторения цикла ничем не ограничены, программа
будет печатать эту строку снова и снова, без конца. Это называется бес-
конечным циклом .
Цикл for
Оператор for упрощает создание циклов, устроенных следующим For — для
образом: сначала создается переменная, а затем тело цикла выполня-
ется снова и снова до тех пор, пока условие дает true, причем в конце
каждого повтора значение переменной обновляется. Программируя
цикл for, мы создаем переменную, задаем условие, указываем, как
6. Условия и циклы 103
должна меняться переменная после каждого повтора, — и лишь затем
переходим к написанию тела цикла. Например, вот как можно считать
овец с помощью for:
for (var sheepCounted = 0; sheepCounted < 10; sheepCounted++) {
console.log("Посчитано овец: " + sheepCounted + "!");
}
console.log("Хрррррррррр-псссс");
Согласно рис. 6.5, в составе цикла for есть три выражения, раз-
деленные точками с запятой: это настройка, проверка условия и при -
ращение.
Код, который будет
Этот код будет выполнен
Условие:
выполняться после каждого
до начала цикла
true или false
повтора тела цикла
for (настройка; условие; приращение) {
console.log("Делаем что-то");
}
Код, который будет выполняться
до тех пор, пока условие дает true
Рис. 6.5. Общая структура цикла for
Настройка (var sheepCounted = 0) выполняется до запуска цикла.
Как правило, здесь создают переменную для отслеживания количества
повторов. В нашем случае это переменная sheepCounted с начальным
значением 0.
Условие (sheepCounted < 10) проверяется перед каждым повто-
ром тела цикла. Если условие дает true, тело выполняется, иначе цикл
заканчивает работу. В нашем случае цикл остановится, когда значение
sheepCounted достигнет 10.
Приращение (sheepCounted++) выполняется после каждого
повтора тела цикла. Как правило, здесь изменяют значение перемен-
ной цикла. В этом примере мы после каждого повтора увеличиваем
sheepCounted на 1.
Циклы for удобны, когда нужно сделать что-то определенное коли-
чество раз. Например, эта программа три раза выведет слово «Привет!».
Times to
var timesToSayHello = 3;
say hello —
for (var i = 0; i < timesToSayHello; i++) {
сколько
console.log("Привет!");
раз сказать
}
«привет»
104 Часть I. Основы
Вот что появится в консоли:
Привет!
Привет!
Привет!
Вообразите, что вы интерпретатор JavaScript, который выполняет
этот код. Сначала вы создадите переменную timesToSayHello, задав ей
значение 3. Дойдя до цикла for, вы выполните настройку, то есть соз-
дадите переменную i и присвоите ей значение 0. Далее вы проверите
Читать дальше
Конец ознакомительного отрывка
Купить книгу