PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Зачем нужен цикл 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 — минимум одна итерация.

Другие вопросы раздела