Цикл while

Цикл while выполняет блок кода пока условие истинно. Он подходит, когда заранее неизвестно, сколько раз нужно повторить действие.

Синтаксис

while (условие) {
  // тело цикла
}

Условие проверяется до каждой итерации. Если оно ложно с самого начала — тело цикла не выполнится ни разу.

Пример: ожидание загрузки данных

let isLoading = true;
let attempts = 0;

while (isLoading && attempts < 5) {
  console.log("Попытка загрузки #" + (attempts + 1));
  
  // Имитация асинхронной загрузки
  if (Math.random() > 0.7) {
    isLoading = false;
    console.log("Успешно загружено!");
  }
  
  attempts++;
}

Здесь мы не знаем, на какой попытке данные загрузятся — поэтому используем while.

Пример: обработка списка до определённого элемента

const messages = ["Привет", "Как дела?", "Пока", "Спасибо"];
let i = 0;

while (i < messages.length && messages[i] !== "Пока") {
  console.log("Обрабатываю: " + messages[i]);
  i++;
}

console.log("Нашли 'Пока' на позиции " + i);

Вывод:

Обрабатываю: Привет
Обрабатываю: Как дела?
Нашли 'Пока' на позиции 2

Важно: избегайте бесконечных циклов

Если условие никогда не станет false — цикл никогда не завершится. Это приведёт к зависанию приложения.

// ОШИБКА — бесконечный цикл
while (true) {
  console.log("Это никогда не остановится!");
}

Всегда убедитесь, что внутри цикла есть изменение, которое ведёт к завершению условия.

Когда использовать while

  • Когда количество итераций зависит от внешних условий: загрузка сети, ожидание ответа API, ввод пользователя.
  • При работе с потоками данных, где элементы приходят динамически.
  • В мобильных приложениях — например, повторная попытка отправки запроса при ошибке, пока не будет успеха или превышено лимит попыток.

Разновидности