Ник Морган - JavaScript для детей. Самоучитель по программированию
- Название:JavaScript для детей. Самоучитель по программированию
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:2016
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Ник Морган - JavaScript для детей. Самоучитель по программированию краткое содержание
JavaScript для детей. Самоучитель по программированию - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
заданное условие дает true. Но, в отличие от if, после того как тело
цикла выполнено, условие будет проверено снова, и, если оно все еще
дает 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. Далее вы проверите
условие. Поскольку в переменной i сейчас 0, а в timesToSayHello — 3,
условие даст true и вы запустите тело цикла, где печатается строка
"Привет!". А затем выполните приращение, то есть увеличите i на 1.
Теперь снова проверьте условие. Оно по-прежнему даст true, и вы
опять перейдете к телу цикла, а затем к приращению. И так будет проис-
ходить до тех пор, пока i не примет значение 3. После этого условие даст
false (3 не меньше, чем 3) — таким образом, вы завершите цикл.
Цикл for, массивы и строки
Очень часто цикл for используют для перебора всех элементов массива
или всех символов строки. Например, вот цикл, который печатает назва-
ния всех животных, которые есть в зоопарке:
var animals = ["лев", "фламинго", "белый медведь", "удав"]; for (var i = 0; i < animals.length; i++) {
console.log("В этом зоопарке есть " + animals[i] + ".");
}
В этом цикле i сначала равняется 0, а затем возрастает до значения
animals.length - 1, то есть 3. Числа 0, 1, 2 и 3 — индексы элементов в мас-
сиве animals. Это значит, что при каждом повторе цикла i принимает зна-
чение очередного индекса, а animals[i] соответствует
очередному животному из массива animals. Когда в i
число 0, animals[i] даст нам строку "лев". Когда в i
число 1, animals[i] даст "фламинго" и т. д.
Запустив эту программу, мы увидим:
В этом зоопарке есть лев.
В этом зоопарке есть фламинго.
В этом зоопарке есть белый медведь.
В этом зоопарке есть удав.
6. Условия и циклы 105
Как мы уже знаем из второй главы, к отдельным символам строки
можно обращаться тем же способом, что и к элементам массива, —
с помощью квадратных скобок. В следующем примере цикл for исполь-
зуется для вывода символов имени:
var name = "Ник";
for (var i = 0; i < name.length; i++) {
console.log("В моем имени есть буква " + name[i] + ".");
}
Вот что выдаст эта программа:
В моем имени есть буква Н.
В моем имени есть буква и.
В моем имени есть буква к.
Другие варианты применения for
Как вы, может быть, догадываетесь, не обязательно сначала задавать
переменной цикла значение 0, а затем каждый раз увеличивать ее на 1.
Например, вот как можно напечатать все степени двойки, не превышаю-
щие числа 10 000:
Читать дальшеИнтервал:
Закладка: