Зачем нужен цикл while?
Основы языка
Цикл `while` нужен для повторения кода, пока истинно условие, когда число итераций заранее неизвестно — в отличие от `for`, удобного при известном числе итераций.
Что делает
Выполняет тело, пока условие истинно; проверка — перед каждой итерацией:
while (condition) {
// тело
}Когда применять
Число итераций неизвестно
Когда цикл идёт до наступления условия, а не фиксированное число раз:
let node = list.head;
while (node !== null) { // пока есть узлы
process(node);
node = node.next;
}Обработка до условия
let input;
while (!isValid(input)) { // пока ввод невалиден
input = getInput();
}Чтение потока данных
let chunk;
while ((chunk = read()) !== null) {
handle(chunk);
}Не зациклиться
Условие должно меняться внутри тела, иначе бесконечный цикл:
let i = 0;
while (i < 5) {
console.log(i);
i++; // обязательно менять условие!
}while против for и do-while
- for — известно число итераций (счётчик).
- while — число итераций неизвестно (по условию), проверка перед телом.
- do-while — как while, но тело выполнится минимум раз (проверка после).
Коротко для собеседования
while повторяет тело, пока истинно условие (проверка перед итерацией) — для случаев с неизвестным числом итераций (обход связного списка, чтение потока, повтор до валидного ввода). Условие должно меняться внутри, иначе бесконечный цикл. for — для известного числа итераций, do-while — минимум одна итерация.