условие. Поскольку в переменной 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:
for (var x = 2; x < 10000; x = x * 2) {
console.log(x);
}
Здесь мы присваиваем x значение 2 и увеличиваем его командой
x = x * 2, то есть, удваиваем значение x при каждом повторе цикла.
В результате x очень быстро возрастает:
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
106 Часть I. Основы
Вуаля! Этот несложный цикл печатает все степени двойки меньше
10 000.
ПОПР ОБУ ЙТЕ !
Напишите цикл for, который печатает степени тройки, не превышающие
10 000 (программа должна выводить 3, 9, 27 и т. д.)
Перепишите это задание, вместо for использовав цикл while.
(Подсказка: установите начальное значение перед входом в цикл.)
Что мы узнали
Мы разобрались с условными конструкциями и циклами. Условные кон-
струкции нужны, чтобы выполнять некие действия, если условие дает
true. А с помощью циклов можно многократно выполнять фрагмент
кода — до тех пор, пока условие дает true. Условными конструкци-
ями можно пользоваться, чтобы запускать код в подходящие для этого
моменты, а циклами — чтобы программа выполнялась так долго, как
требуется. И это открывает перед нами целый мир новых возможностей
в программировании.
В следующей главе мы воспользуемся мощью условных конструкций
и циклов при создании нашей первой игры!
6. Условия и циклы 107
УПРА ЖНЕНИЯ
Выполните эти упражнения, чтобы попрактиковаться в работе
с условными конструкциями и циклами.
#1. Прекрасные животные
Напишите цикл for, который изменяет массив животных, делая
их прекрасными! Например, если есть следующий массив:
var animals = ["Кот", "Рыба", "Лемур", "Комодский варан"]; то ваш цикл должен сделать его таким:
["Кот - прекрасное животное", "Рыба - прекрасное животное", "Лемур -
прекрасное животное", "Комодский варан - прекрасное животное"]
Подсказка: вам понадобится переприсвоить значения для
каждого индекса, то есть присвоить новые значения уже суще-
ствующим элементам. Например, сделать первое животное пре-
красным можно так:
animals[0] = animals[0] + " - прекрасное животное";
#2. Генератор случайных строк
Напишите генератор случайных строк. Для этого вам понадо-
бится строка со всеми буквами алфавита:
Alphabet —
var alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
алфавит
Чтобы выбирать из этой строки случайную букву, можно
использовать примерно такой же код, как для генератора случай-
Читать дальше
Конец ознакомительного отрывка
Купить книгу