JS оператор do...while


Загальний опис

do...while — це конструкція циклу в JavaScript, яка гарантує виконання блоку коду щонайменше один раз, навіть якщо умова для повторення спочатку є хибною. Основна відмінність від циклу while полягає в тому, що перевірка умови виконується після виконання тіла циклу, а не перед ним.

Цикл починається зі слова do, після чого йде блок коду в фігурних дужках {}. Після блоку розміщено ключове слово while і умову в круглих дужках (). Якщо умова є істиною, виконання блоку повторюється. Якщо хибна — цикл завершується.

let counter = 0;

do {
  console.log(`Значення лічильника: ${counter}`);
  counter++;
} while (counter < 5);
// Виведе числа від 0 до 4.

Ця конструкція ідеально підходить для ситуацій, коли необхідно виконати певну дію перед перевіркою її доцільності, наприклад, для запиту користувацького вводу, що повторюється до введення коректного значення.

let input;

do {
  input = prompt("Введіть число більше за 10:");
} while (input <= 10 && input !== null);

console.log(`Ви ввели: ${input}`);

У цьому прикладі, навіть якщо користувач одразу введе коректне значення, тіло циклу виконається хоча б один раз.

автор: Bond

Порада

Якщо логіка циклу не вимагає виконання до перевірки умови, while чи for можуть бути кращими варіантами.

автор: Bond
Порада

У циклі з користувацьким вводом або валідацією виводьте інструкції перед виконанням, оскільки тіло виконається першим.

автор: Bond
Порада

Для покращення читабельності коду розділіть складні умови на окремі змінні чи функції. Наприклад:

 let isNumber = false;
 do {
   let input = prompt("Введіть число:");
   isNumber = !isNaN(input);
 } while (!isNumber);
автор: Bond

Синтаксис

do {
  // Код, що виконується
} while (умова);

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 4 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Цей код перевіряє правильність вводу email. Користувач має максимум три спроби, після чого програма завершиться.

let attempts = 0;
let isValid = false;

do {
  let input = prompt("Введіть коректний email:");
  isValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(input);
  attempts++;
  if (!isValid) {
    console.log(`Спроба ${attempts}: Неправильний email.`);
  }
} while (!isValid && attempts < 3);

if (isValid) {
  console.log("Email прийнято.");
} else {
  console.log("Занадто багато спроб.");
}
автор: Bond

Користувач вводить число в поле вводу та натискає кнопку. JavaScript за допомогою do...while виводить послідовність чисел від 1 до зазначеного числа у контейнері #output. Це наочно демонструє принцип роботи циклу: перший ітерація завжди виконується незалежно від початкової умови.

автор: Bond

Цей приклад створює масив з п’яти унікальних випадкових чисел. Конструкція do...while гарантує, що генерація продовжиться, поки масив не досягне потрібного розміру.

const uniqueNumbers = [];
do {
  let randomNum = Math.floor(Math.random() * 100);
  if (!uniqueNumbers.includes(randomNum)) {
    uniqueNumbers.push(randomNum);
    console.log(`Додано: ${randomNum}`);
  }
} while (uniqueNumbers.length < 5);

console.log(`Унікальні числа: ${uniqueNumbers}`);
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід