while — це цикл в JavaScript, який повторює виконання блоку коду доти, доки задана умова залишається істинною (true). Перед кожною ітерацією умова перевіряється, і якщо вона є хибною (false), виконання циклу завершується.
Цикл while є корисним, коли кількість повторень наперед невідома. Наприклад, він може застосовуватися для читання даних, поки вони доступні, або для виконання операцій, поки користувач не завершить певну дію.
Приклад простого використання:
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
У цьому прикладі змінна i збільшується на 1 на кожній ітерації, поки її значення менше 5.
Якщо умова завжди істинна і її не змінювати, це може призвести до нескінченного циклу:
while (true) {
console.log("Цей цикл ніколи не завершиться");
}
Нескінченні цикли слід уникати або використовувати з умовою для примусового виходу, наприклад, через break.
Існує також цикл do...while, схожий на while, але він виконує блок коду щонайменше один раз, незалежно від початкового стану умови.
while часто використовують у сценаріях, де необхідно очікувати певної події, наприклад, виконання асинхронної операції. Проте у таких випадках краще використовувати асинхронні методи, щоб уникнути блокування потоку.
Під час роботи з while завжди переконайтеся, що змінна, яка перевіряється в умові, змінюється в тілі циклу. Без цього можна легко створити нескінченний цикл.
Для роботи з великими масивами використовуйте while, коли потрібно обробляти елементи до досягнення певного стану. Це дозволяє більш ефективно завершувати цикл, ніж перебирати всі елементи через for.
Користувач вводить кількість чисел у текстове поле та натискає кнопку "Згенерувати список". Програма очищає список і за допомогою циклу while додає до нього вказану кількість чисел. Це наочний приклад використання while для обробки введених даних та динамічного оновлення сторінки.
У цьому прикладі цикл продовжує запитувати користувача на введення, доки він не введе непорожній рядок. Це корисно для валідації даних у реальному часі.
let input;
while (!input || input.trim() === "") {
input = prompt("Введіть своє ім'я (не залишайте поле порожнім):");
}
console.log(`Привіт, ${input}!`);
Цей цикл повторюється, поки не згенерується випадкове число 7. Він демонструє, як while можна використовувати для виконання повторюваних операцій із невизначеною кількістю ітерацій.
let randomNumber = 0;
let attempts = 0;
while (randomNumber !== 7) {
randomNumber = Math.floor(Math.random() * 10); // Генерація числа від 0 до 9
attempts++;
}
console.log(`Знайдено 7 за ${attempts} спроб`);