Циклы

Повторение однотипного набора команд заданное по условию количество

Итерация - единичное выполнение тела цикла.

Тело цикла - набор инструкций, заключенных в фигурные скобки ({}), исполняемых, если условие цикла приводится к 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, который полностью прекращает выполнение цикла и передаёт управление на строку за его телом.

Найдём число 3. Как только выполнится условие if, цикл прекратит своё выполнение (будет прерван).

for (let i = 0; i <= 5; i += 1) {  
    console.log(i);  
    if (i === 3) {    
        console.log("Нашли число 3, прерываем выполнение цикла");    
        break;  
    }
}

console.log("Лог после цикла");

Оператор 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