Использование циклов 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: Javascript