Использование циклов while и do…while в JavaScript

Автоматизация – это технология, которая позволяет системе самостоятельно выполнять определенные задачи. В программировании для автоматизации обработки повторяющихся задач используются циклы. Циклы – одна из самых полезных функций любого языка программирования.

Данный мануал научит вас использовать циклы do…while в JavaScript.

Выражения while и do…while похожи на условные операторы – блоки кода, которые выполняются в случае, если заданное условие оценивается как истинное. Но в отличие от оператора if, который оценивается один раз, циклы будут оцениваться множество раз до тех пор, пока условие не станет истинным.

Читайте также: Условные операторы в JavaScript

Также вы могли сталкиваться с другим распространенным типом цикла – оператором for, который выполняется определенное количество раз. Циклы while и do…while основаны на условиях, и поэтому не требуют заранее указывать, сколько раз нужно повторить цикл.

Цикл while

В JavaScript while – это цикл, который выполняется до тех пор, пока указанное условие оценивается как истинное.

Его синтаксис очень похож на оператор if:

while (condition) {
// тело цикла
}

Оператор while — это самый базовый цикл в JavaScript.

Для примера предположим, что у нас есть аквариум, количество рыб в котором ограничено. Каждая итерация цикла добавит в него одну рыбу. После того, как в аквариуме появится 10 рыб, предел численности будет достигнут и программа перестанет добавлять рыб в аквариум.

Создайте файл aquarium.js и добавьте в него такой код:

// Ограничьте количество рыб в аквариуме до 10
const popLimit = 10;
// Задайте 0 в качестве стартового значения
let fish = 0;
// Инициируйте цикл, который будет работать, пока количество рыб не достигнет предела
while (fish < popLimit) {
// добавьте по 1 рыбе за итерацию
fish++;
console.log("There's room for " + (popLimit - fish) + " more fish.");
}

Запустите вышеуказанную программу, и вы получите следующий вывод:

The aquarium has room for 9 more fish.
The aquarium has room for 8 more fish.
The aquarium has room for 7 more fish.
The aquarium has room for 6 more fish.
The aquarium has room for 5 more fish.
The aquarium has room for 4 more fish.
The aquarium has room for 3 more fish.
The aquarium has room for 2 more fish.
The aquarium has room for 1 more fish.
The aquarium has room for 0 more fish.

В данном примере цикл while работает до тех пор, пока количество рыб в аквариуме не превышает предел. Каждая итерация добавляет в аквариум по одной рыбе до тех пор, пока их не станет 10. В этот момент цикл перестанет работать.

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

Бесконечный цикл – это цикл, который будет работать постоянно. Если вы случайно создадите бесконечный цикл, он может привести к сбою браузера или компьютера. Бесконечных циклов в программах следует избегать.

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

while (true) {
// код будет обрабатываться вечно
}

Бесконечный цикл будет работать вечно, но программу можно прервать ключевым словом break.

В приведенном ниже примере вы увидите, как добавить оператор if в цикл while; когда условие будет выполнено, ключевое слово break прервет цикл.

// Установите условие true
const iceCapsAreMelting = true;
let polarBears = 5;
// Инициируйте бесконечный цикл
while (iceCapsAreMelting) {
console.log(`There are ${polarBears} polar bears.`);
polarBears--;
// Прервите бесконечный цикл, если следующее условие оценивается как true
if (polarBears === 0) {
console.log("There are no polar bears left.");
break;
}
}

Запустите эту программу, и вы увидите такой вывод:

There are 5 polar bears.
There are 4 polar bears.
There are 3 polar bears.
There are 2 polar bears.
There are 1 polar bears.
There are no polar bears left.

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

Циклы do…while

Вы уже знаете о цикле while, который выполняет блок кода до тех пор, пока указанное условие истинно. На нем основан цикл do…while. Он очень похож на while, а основное различие между ними заключается в том, что do…while всегда выполняется по крайней мере один раз, даже если заданное условие никогда не оценивается как истинное.

Цикл do…while использует такой синтаксис:

do {
// тело цикла
} while (условие);

Как видите, do открывает блок кода, а while (условие) идет в конце. Блок кода запускается, а затем условие оценивается как в обычном цикле while.

Чтобы потренироваться, задайте переменной значение 0, добавьте ее инкремент в цикл do и установите значение false.

// Set variable to 0
let x = 0;
do {
// Increment variable by 1
x++;
console.log(x);
} while (false);
1

В выводе программа вернула 1, что означает, что блок кода обрабатывается циклом один раз (начиная с 0), после чего ложное условие while прерывает его.

Цикл do…while можно использовать для тех же целей, что и цикл while, но при этом следует помнить, что он выполняется как минимум один раз, даже если условие изначально ложно.

Заключение

Теперь вы знакомы с циклами while, do…while и бесконечными циклами в JavaScript.

Автоматизация повторяющихся задач – чрезвычайно важная часть программирования. Циклы могут помочь сделать программы более эффективными и сократить их код.

Больше информации о циклах while и do…while вы найдете в Mozilla Developer Network.

Читайте также:

Tags: