WHILE & FOR

WHILE

проверяет условие перед каждой итерацией

let num = 0;

while (num < 5) {
    console.log(num);
    num++;               // num--
}

// или сам цикл можно так
while (num) console.log(num++)

do...while

Конструкция проверяет условие после каждой итерации Когда требуется выполнение хотя бы одного тела цикла вне зависимости от того - вернет ли условие true или нет

let num = 0;
do {
    console.log(num);
    num++;
} while (num < 5);

бесконечный цикл

Чтобы организовать бесконечный цикл, используют конструкцию while (true)


FOR

проверяет условие перед каждой итерацией

// Синтаксис:

for (начало; условие остановки; шаг) {
    // тело цикла
}
// цикл продолжается до тех пор пока условие не вернет false
for (let i = 0; i < 5; i++) {   // "встроенное" объявление переменной, итератор
    console.log(i);
}
// можно убрать любую часть цикла
let i = 0;
for (; i < 5;) {
    console.log(i);
    i++;
}

Директива break

прекратить выполнение цикла досрочно

let i = 0;
for (; i < 5; i++) {
    console.log(i);
    if (i == 2) break;
}
console.log(`Работа окончена, i = ${i}`); // 0 1 2 Работа окончена, i = 2

Директива continue

прекратить выполнение части тела цикла досрочно

let i = 0;
for (; i < 5; i++) {
    if (i == 2) continue;
    console.log(i)  // 0 1 3 4
}

Директивы break/continue нельзя использовать с оператором "?"


Метки для break/continue

Метки - единственный способ для break/continue выйти за пределы текущего цикла, повлиять на выполнение внешнего. Вызов break/continue с меткой должен быть внутри цикла. А сама метка д.б. присвоена где-то выше записи

firstFor: for (let i = 0; i < 2; i++) {
    for (let size = 0; size < 3; size++) {
        if (size == 2) {
            break firstFor;     // или continue
        }
        console.log(size);      // 0 1
    }
}

Last updated