В JavaScript цикл while используется для многократного выполнения блока кода, пока выполняется определенное условие. Синтаксис цикла while следующий:

while (condition) {
  // code to be executed
}

condition — это логическое выражение, которое вычисляется в начале каждой итерации цикла. Если condition равно true, выполняется код внутри цикла. После выполнения кода внутри цикла condition снова оценивается, и цикл продолжает выполняться до тех пор, пока condition остается true. Когда condition становится false, цикл завершается, и управление передается коду, следующему за циклом.

Основной пример

Давайте начнем с простого примера, чтобы проиллюстрировать, как работает цикл while:

let i = 0;

while (i < 5) {
  console.log(i);
  i++;
}

В этом примере мы объявляем переменную i и инициализируем ее значением 0. Цикл while выполняется до тех пор, пока значение i меньше 5. Во время каждой итерации цикла мы выводим текущее значение i в консоль с помощью функции console.log, а затем увеличиваем значение i на 1. Это продолжается до тех пор, пока i не достигнет значения 5, после чего condition цикла while станет false, и цикл завершится.

Вывод этого кода будет:

0
1
2
3
4

Бесконечные циклы

Вы должны быть осторожны при использовании циклов while, потому что можно запускать вещи бесконечно. Foreverrrr!!. Бесконечный цикл возникает, когда condition цикла всегда равен true, в результате чего цикл продолжает выполняться бесконечно.

Вот пример

while (true) {
  console.log('This is an infinite loop!');
}

В этом примере condition цикла всегда равно true, что приводит к многократному выполнению кода внутри цикла без выхода.

Чтобы избежать бесконечных циклов, вы всегда должны убедиться, что condition цикла в конечном итоге станет false. Или, по крайней мере, включите где-нибудь ключевое слово break, чтобы принудительно выйти из цикла.

Цикл Do-While

В дополнение к циклу while JavaScript также предоставляет цикл do-while. Цикл do-while подобен циклу while, но condition оценивается в конце каждой итерации цикла, а не в начале. Подумайте об инвертированном цикле while или о наркотиках.

Синтаксис цикла do-while следующий:

do {
  // code to be executed
} while (condition);

code внутри цикла выполняется хотя бы один раз, независимо от того, является ли condition true или false. После выполнения code оценивается condition, и цикл продолжает выполняться до тех пор, пока condition остается true. Когда condition становится false, цикл завершается, и управление передается коду, следующему за циклом.

Вот пример таких петель:

let i = 0;

do {
  console.log(i);
  i++;
} while (i < 5);

В этом примере цикл всегда будет выполняться хотя бы один раз, так как condition оценивается в конце цикла. Вывод этого кода будет таким же, как и в предыдущем примере:

0
1
2
3
4

Вложенные циклы

Я помню, когда я изучал основы программирования в возрасте около 15 лет, я влюбился в концепцию вложенности. Вложенность — это способ запустить что-то внутри чего-то другого.

Как и другие циклы, циклы while могут быть вложены внутрь других циклов. Это полезно, когда вам нужно перебрать сложную структуру данных или выполнить ряд задач, требующих нескольких циклов.

Вот пример вложенного цикла while:

let i = 0;
let j = 0;

while (i < 5) {
  while (j < 3) {
    console.log(`i: ${i}, j: ${j}`);
    j++;
  }
  j = 0;
  i++;
}

В этом примере у нас есть два цикла while, вложенных друг в друга. Внешний цикл повторяется до тех пор, пока i меньше 5, а внутренний цикл повторяется до тех пор, пока j меньше 3. Во время каждой итерации внутреннего цикла мы выводим текущие значения i и j на консоль, используя литерал шаблона. После завершения внутреннего цикла мы сбрасываем значение j на 0, а затем увеличиваем значение i на 1. Этот процесс повторяется до тех пор, пока i не достигнет значения 5, после чего внешний цикл завершается.

Вот что вы получите, когда запустите программу. Да, я запустил это в хроме и скопировал.

i: 0, j: 0
i: 0, j: 1
i: 0, j: 2
i: 1, j: 0
i: 1, j: 1
i: 1, j: 2
i: 2, j: 0
i: 2, j: 1
i: 2, j: 2
i: 3, j: 0
i: 3, j: 1
i: 3, j: 2
i: 4, j: 0
i: 4, j: 1
i: 4, j: 2

Цикл while — это фундаментальная конструкция в JavaScript, которая позволяет многократно выполнять блок кода, пока выполняется определенное условие. При использовании цикла while важно убедиться, что condition цикла в конечном итоге станет false, чтобы избежать создания бесконечного цикла. Кроме того, циклы while могут быть вложены в другие циклы для выполнения более сложных задач. Освоив цикл while, вы сможете писать более мощный и эффективный код JavaScript.

Вот и все. Честно говоря, я предпочитаю другие циклы циклам while, но в зависимости от контекста использование циклов while может быть неизбежным. Спасибо, что учились со мной сегодня. Адиос 👋