Kodokon kodokon.com

Циклы: for, while, for...of

Повторяй инструкции, не повторяясь сам, - с помощью циклов for, while и for...of.

7 мин · 3 вопросов

Открыть этот урок в Kodokon

Представь, что нужно показать приветствие для 100 пользователей: копировать одну и ту же строку 100 раз было бы утомительно и чревато ошибками. Цикл - это конструкция, которая повторяет блок инструкций несколько раз. В JavaScript есть несколько циклов; начнём с самого известного - цикла for.

JAVASCRIPT
for (let i = 1; i <= 3; i++) {
  console.log("Round number " + i);
}
// Prints: Round number 1
// Prints: Round number 2
// Prints: Round number 3
Цикл for, который выполняется три раза

Строка for (let i = 1; i <= 3; i++) читается в три части, разделённые точками с запятой: начало (let i = 1 создаёт счётчик с именем i, равный 1), условие (i <= 3: цикл продолжается, пока оно истинно) и шаг (i++ прибавляет 1 к i после каждого прохода). Цикл останавливается, как только условие становится ложным.

Цикл while проще: он повторяет свой блок, пока его условие истинно. Его используют, когда заранее не знаешь количество повторений.

JAVASCRIPT
let batteryLevel = 3;

while (batteryLevel > 0) {
  console.log("Battery: " + batteryLevel);
  batteryLevel = batteryLevel - 1;
}
console.log("Battery empty!");
Цикл выполняется, пока batteryLevel больше 0

Наконец, цикл for...of проходит напрямую по значениям коллекции, например массива (список значений, который ты подробно изучишь в уроке 5). На каждом проходе переменная получает следующее значение: никаким счётчиком управлять не нужно.

JAVASCRIPT
const fruits = ["apple", "banana", "cherry"];

for (const fruit of fruits) {
  console.log(fruit);
}
// Prints: apple, then banana, then cherry
for...of проходит по каждому значению массива

Проверка знаний

Убедись, что запомнил ключевые моменты этого урока.

  1. Сколько раз выполнится блок for (let i = 0; i < 3; i++)?
    • 2 раза
    • 3 раза
    • 4 раза
  2. Какой цикл проходит по значениям массива напрямую, без счётчика?
    • for...of
    • while
    • if
  3. Что произойдёт, если условие цикла while никогда не станет ложным?
    • Цикл остановится после 1000 проходов
    • JavaScript пропустит цикл
    • Цикл будет выполняться вечно, и программа зависнет