В 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 может быть неизбежным. Спасибо, что учились со мной сегодня. Адиос 👋