Цикл while
Представьте, что нужно вывести числа от 1 до 100. Можно сто раз написать console.log(), но это отняло бы кучу времени, а любое изменение потом было бы ещё хуже. Программам постоянно приходится повторять такую работу: пройти по всем ученикам в списке, проверить каждый товар в магазине или перерисовывать экран игры 60 раз в секунду. Для этого нужны циклы. Цикл — это часть кода, которая выполняется снова и снова.
Самый простой цикл — while (по-английски «пока»). Он повторяет блок кода, пока его условие истинно:
let number = 1;
while (number <= 5) {
console.log(number);
number = number + 1;
}Вывод:
1
2
3
4
5Цикл while похож на if: ключевое слово, условие в круглых скобках и блок кода в фигурных скобках. Разница в том, что if выполняет свой блок не больше одного раза, а while каждый раз возвращается к условию. Шаг за шагом:
- Программа создаёт
numberсо значением1. - Она проверяет условие
number <= 5. Оно истинно (true), поэтому выполняется блок: выводится1, аnumberувеличивается до2. - Программа возвращается к условию.
2 <= 5по-прежнемуtrue, поэтому выводится2, аnumberувеличивается до3. - И так далее, пока
numberне станет равным6. Тогда условие ложно (false), цикл заканчивается, и программа продолжает работу с кода после цикла.
Каждое выполнение блока называется итерацией. В этом цикле пять итераций. Чтобы вывести числа до 100, достаточно заменить 5 на 100.
Берегитесь циклов, которые никогда не заканчиваются. Если забыть строку number = number + 1;, то number останется равным 1, условие всегда будет истинным, и цикл будет выводить 1 бесконечно. Это называется бесконечным циклом. В этих упражнениях такая программа останавливается через 5 секунд с сообщением Программа работала слишком долго и была остановлена. Нет ли в ней бесконечного цикла? Увидев его, проверьте, меняет ли цикл переменную из своего условия, чтобы условие когда-нибудь стало ложным.
Задание
- 1
Создайте переменную
numberсо значением10. Используйтеlet, потому что цикл будет менять её значение. - 2
Под ней напишите цикл
while, который работает, покаnumberменьше или равно20. Внутри цикла выведитеnumber, а затем увеличьте его на 1. Программа выведет числа от 10 до 20, каждое на своей строке. - 3
Теперь измените в коде одно число так, чтобы цикл выводил все числа от 10 до 100.