Циклы
Повторение однотипного набора команд заданное по условию количество
Итерация - единичное выполнение тела цикла.
Тело цикла - набор инструкций, заключенных в фигурные скобки ({}
), исполняемых, если условие цикла приводится к true
.
WHILE
while
— цикл, который выполняется пока условие, указанное перед его началом приводится к true. Это условие проверяется перед запуском тела цикла. Если изначально перед запуском первой итерации условие приводится к false, цикл не запустится вовсе.
Схема цикла while
while (condition) {
statement;
}
Пример использования цикла while
let counter = 0;
while (counter < 10) {
console.log("counter: ", counter);
counter += 1;
}
DO WHILE
do...while
— цикл, в котором условие проверяется после выполнения тела. Такой цикл всегда выполнится хотя бы раз, потому что сначала отрабатывает код цикла, только потом выход из-за условия, приведенного к false
Схема цикла do...while
do {
statement;
} while (condition)
Пример использования цикла do...while
let password = "";
do {
password = prompt('Введите пароль не менее 8 символов');
} while (password.length < 8);
console.log("Ввели пароль: ", password);

FOR
Цикл со счётчиком - цикл, в котором некоторая переменная изменяет своё значение от заданного начального до конечного значения с некоторым шагом и для каждого значения этой переменной тело цикла выполняется один раз.
В большинстве процедурных языков программирования реализуется конструкцией for
, в которой указывается счётчик, требуемое количество итераций и шаг, с которым изменяется счётчик.
for (initialization; condition; post-expression) {
// statements
}
Алгоритм исполнения цикла for
:
Инициализация (initialization) - выполняется один раз перед началом цикла. Используется для создания переменной-счётчика и указания её начального значения.
Условие (condition) - выражение, оцениваемое перед каждой итерацией (повторением) цикла. Тело цикла выполняется только тогда, когда выражение приводится к
true
. Цикл завершается, если значение будетfalse
.Тело (statements) - набор инструкций для выполнения на каждом повторении. Выполняется если выражение условия приводится к
true
.Пост-выражение (post-expression) - выполняется в конце каждого повторения цикла, перед проверкой условия. Используется для обновления переменной-счётчика.
Переменные-счетчики, по традиции, называются буквами i
, j
и k
.
for (let i = 0; i <= 20; i += 5) {
console.log(i);
}
В примере объявляется перемнная-счетчик i
, инициализируется значением 0
и цикл выполняется до тех пор, пока i <= 20
, то есть условие приводится к true
. После каждой итерации счётчик увеличивается на 5
.
Посчитаем сумму чисел до определенного значения.
const target = 3;
let sum = 0;
for (let i = 0; i <= target; i += 1) {
sum += i;
}
console.log(sum);
Вспомним про операцию a % b
и выведем остаток от деления используя цикл.
const max = 10;
for (let i = 0; i < max; i += 1) {
console.log(`${max} % ${i} = `, max % i);
}
Оператор break
break
Прервать выполнение цикла можно в любой момент. Для этого сущестует оператор break
, который полностью прекращает выполнение цикла и передаёт управление на строку за его телом.
Найдём число 3
. Как только выполнится условие if
, цикл прекратит своё выполнение (будет прерван).
for (let i = 0; i <= 5; i += 1) {
console.log(i);
if (i === 3) {
console.log("Нашли число 3, прерываем выполнение цикла");
break;
}
}
console.log("Лог после цикла");
Оператор continue
continue
Прерывает не весь цикл, а только выполнение текущей итерации. Его используют, если понятно, что на текущей итерации цикла делать больше нечего или вообще ничего делать не нужно и пора переходить на следующую итерацию.
Используем цикл для вывода только нечетных чисел. Для чётных i
срабатывает continue
, выполнение тела прекращается и управление передаётся на следующую итерацию.
const number = 10;
for (let i = 0; i < number; i += 1) {
if (i % 2 === 0) {
continue;
}
console.log("Нечетное i: ", i); // 1, 3, 5, 7, 9}
Last updated