Цикл for
Большинство циклов считают ряд чисел: от 1 до 10 или по индексам массива. В цикле while подсчёт разбросан по трём местам: переменная создаётся перед циклом, условие стоит в начале, а изменение — в конце блока. Цикл for собирает все три части в одной строке, и сразу видно, как считает цикл:
for (let i = 1; i <= 3; i++) {
console.log(i);
}Вывод:
1
2
3Он делает ровно то же, что и такой цикл while:
let i = 1;
while (i <= 3) {
console.log(i);
i++;
}В круглых скобках после for три части, разделённые точками с запятой:
let i = 1— начало. Оно выполняется один раз, перед первой итерацией, и создаёт счётчикi.i <= 3— условие. Оно проверяется перед каждой итерацией. Пока оно истинно, блок выполняется; когда становится ложным, цикл заканчивается.i++— шаг. Он выполняется после каждой итерации и сдвигает счётчик.
Порядок такой: начало, условие, блок, шаг, условие, блок, шаг… пока условие не станет ложным. Части разделяются точками с запятой, а не запятыми. С запятыми будет SyntaxError.
Счётчик обычно называют i (от слова index, «индекс»), но подойдёт любое имя. Шагом может быть любое изменение: i += 2 считает через одного, а i-- считает в обратную сторону:
for (let i = 3; i > 0; i--) {
console.log(i);
}3
2
1Почему let, а не const? Счётчик — это одна переменная, которую шаг меняет после каждой итерации: i++ меняет её с 1 на 2, а затем на 3. const изменить нельзя, поэтому for (const i = 1; i <= 3; i++) выведет 1 и остановится с ошибкой TypeError: Assignment to constant variable.
Какой цикл выбрать? for — когда вы знаете, сколько раз он выполнится: от 1 до 10 или по разу для каждого элемента массива. while — когда заранее неизвестно, например, чтобы удваивать число, пока оно не станет больше 1000:
let number = 1;
let doublings = 0;
while (number <= 1000) {
number = number * 2;
doublings++;
}
console.log("Удвоений:", doublings);
console.log("Число:", number);Удвоений: 10
Число: 1024Задание
- 1
Перепишите цикл
whileиз редактора в виде циклаforи удалите циклwhile. Программа по-прежнему выводит числа от 1 до 5. - 2
Измените свой цикл
forтак, чтобы он выводил числа от 15 до 20 включительно.