Эта статья является кратким продолжением предыдущего связанного поста. См. ссылку ниже для дальнейшего чтения по аналогичной теме.



Другой цикл JavaScript, который обычно используется для повторного выполнения одного и того же действия, — это цикл while. В этой статье будут рассмотрены операторы while и do/while, а также сравнение стандартных циклов for и while.

Пока цикл

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

И синтаксис очень прост:

Пример:

В этом примере счетчик запускается со значением 1. Цикл while будет выполнять блок кода до тех пор, пока выражение «счетчик ‹ 5» оценивается как «истина». Следовательно, когда счетчик равен 1, 2, 3 и 4, циклы while будут консольно регистрировать предоставленное предложение, каждый раз вставляя текущее значение счетчика. Затем счетчик увеличивается на 1 (на строку counter++) и переходит к следующей итерации цикла. Как только счетчик станет равным 5, выражение в цикле «пока» будет оцениваться как «ложь», что завершает цикл.

Результат:

Если выражение, предоставленное циклу while, никогда не оценивается как «истина», блок кода внутри цикла не будет выполняться. Пример:

Поскольку «счетчик» инициализирован равным 1, выражение в цикле «пока» равно «ложь». Код внутри цикла while не выполняется.

Результат:

Делать/пока цикл

Оператор do/while — это вариант цикла while. С помощью этого оператора блок кода выполняется один раз до того, как выражение, предоставленное оператору «пока», оценивается. Затем блок кода выполняется повторно, пока выражение не станет ложным. Этот тип цикла всегда будет выполняться хотя бы один раз, даже если выражение ложно, потому что блок кода выполняется до того, как выражение будет вычислено.

Синтаксис этого цикла также очень прост:

Пример 1:

Результат:

Пример 2:

Результат:

В отличие от стандартного цикла while блок кода в примере 2 выполняется один раз, несмотря на то, что выражение оценивается как false на первой итерации.

Сравнение

Те, кто знаком со стандартным циклом for и циклом while, могут заметить некоторое сходство между этими двумя циклами. Цикл «пока» по сути такой же, как и цикл «фор», с опущенным первым и третьим выражениями оператора «фор». Приведенный выше пример цикла «пока» будет работать так же с циклом «фор», используя то же выражение, что и второй оператор, но исключая первый и третий операторы:

Как и ожидалось, это дает тот же результат, что и цикл while:

Для получения дополнительной информации о циклах while см.: