Цикл 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, ввод пользователя.
- При работе с потоками данных, где элементы приходят динамически.
- В мобильных приложениях — например, повторная попытка отправки запроса при ошибке, пока не будет успеха или превышено лимит попыток.