Цикл while
может выполняться бесконечно
(это приведет к зависанию скрипта и страницы
браузера), достаточно передать ему выражение,
которое никогда не станет ложным.
Например, так:
let test = true;
while (test === true) {
/*
Написанный здесь код будет выполняться "вечно"
(пока скрипт не будет остановлен принудительно).
Не стоит это повторять - это приведет к зависанию
страницы браузера!
*/
}
Начинающие программисты время от времени загоняют свою программу в бесконечный цикл (с вами это тоже обязательно случится пару раз). Давайте рассмотрим распространенные ошибки начинающих.
Ошибка 1
Пусть есть вот такой цикл, выводящий числа
от 1
до 10
:
let i = 1;
while (i <= 10) {
console.log(i);
i++;
}
Представим теперь, что программист забыл сделать увеличение счетчика в цикле:
let i = 1;
while (i <= 10) {
console.log(i);
}
В этом случае цикл будет выполнятся бесконечно, так как условие, при котором цикл закончится, никогда не будет достигнуто.
Ошибка 2
Пусть опять наш программист хотел выводить
числа от 1
до 10
, однако, вместо
++
написал --
:
let i = 1;
while (i <= 10) {
console.log(i);
i--; // перепутал ++ и --
}
В этом случае, хотя счетчик и изменяется, но он изменяется не в ту сторону - и опять условие никогда не будет достигнуто.
Цикл не запускается
Бывает и обратная проблема - можно так написать код, что условие цикла уже изначально будет неверно и цикл просто не запустится.
Пусть, к примеру, программист хотел вывести
столбец чисел от 1
до 10
, однако,
вместо условия i <= 10
, написал
условие i >=
:
let i = 1;
while (i >= 10) {
console.log(i);
i++;
}
В таком случае цикл просто не начнется, так как условие изначально неверно.
Бывает и так, что некоторым начинающим кажется, что цикл крутится не пока условие верно, а наоборот - цикл крутится пока условие не верно и остановится, когда оно станет верным.
Вот пример такого кода:
let i = 1;
while (i == 10) { // зачем-то написано ==
console.log(i);
i++;
}
При таком условии цикл вообще не начнется, так как условие просто изначально не верно.
Задачи
В следующем коде программист вывел числа
от 10
до 1
:
let i = 10;
while (i >= 1) {
console.log(i);
}
В коде, однако, была допущена ошибка, которая привела к тому, что цикл выполняется бесконечно. Исправьте ошибку программиста.
В следующем коде программист вывел числа
от 10
до 1
:
let i = 10;
while (i >= 1) {
console.log(i);
i++;
}
В коде, однако, была допущена ошибка, которая привела к тому, что цикл выполняется бесконечно. Исправьте ошибку программиста.
В следующем коде программист вывел числа
от 10
до 1
:
let i = 10;
while (i <= 0) {
console.log(i);
i--;
}
В коде, однако, была допущена ошибка, которая привела к тому, что на экран ничего не вывелось. Исправьте ошибку программиста.
В следующем коде программист вывел числа
от 10
до 1
:
let i = 10;
while (i == 0) {
console.log(i);
i--;
}
В коде, однако, была допущена ошибка, которая привела к тому, что на экран ничего не вывелось. Исправьте ошибку программиста.
В следующем коде программист вывел числа
от 10
до 1
:
let i = 10;
while (i == 10) {
console.log(i);
i--;
}
В коде, однако, была допущена ошибка, которая
привела к тому, что цикл вывел только число
10
и закончил свою работу. Исправьте
ошибку программиста.