JavaRush /Курси /JAVA 25 SELF /Цикл do-while: знайомство та нюанси роботи

Цикл do-while: знайомство та нюанси роботи

JAVA 25 SELF
Рівень 4 , Лекція 3
Відкрита

1. Знайомство з циклом do-while

Уявіть, що ви пишете програму, яка вгадує число, загадане користувачем. Потрібно бодай один раз запитати число й повторювати запит, доки не вгадаєте його. Якщо перевіряти умову заздалегідь, звичайний while може взагалі не увійти в цикл.

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

Синтаксис do-while

Усе просто: у Java для цього є пара ключових слів.


do
{
    // Тіло циклу: цей код виконається щонайменше один раз
}
while (умова);
Синтаксис циклу do-while

Зверніть увагу на крапку з комою ; наприкінці — після закривної дужки умови! У звичайному while її немає, а тут вона є — класична пастка для новачків.

Опис кроків циклу do-while:

  1. Вхід у тіло циклу (завжди бодай раз).
  2. Перевірка умови.
  3. Якщо умова істинна — повторити виконання тіла циклу.
  4. Якщо умова хибна — вийти з циклу.

2. Відмінність від звичайного while

Згадайте базовий сценарій роботи звичайного while:

while (умова)
{
    // Тіло циклу
}

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

Тепер приклад з do-while:

do
{
    // Тіло циклу
}
while (умова);

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

Ілюструємо різницю кодом:

// Звичайний while
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// Нічого не буде виведено

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// Буде виведено "count2 = 0", хоча умова хибна!

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

3. Практичні сценарії застосування do-while

Де цей цикл трапляється найчастіше?

Валідація даних

Популярний сценарій: просимо користувача ввести коректні дані (наприклад, пароль не коротший за 6 символів) і повторюємо запит, доки введення не буде коректним.

String password;
do
{
    System.out.print("Введіть новий пароль (щонайменше 6 символів): ");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("Пароль прийнято!");

Тіло циклу виконається бодай раз — навіть якщо користувач одразу введе довгий пароль.

Меню в консольних застосунках

Поширений шаблон: показувати меню, чекати на команду й завершувати роботу лише за спеціальною командою.

String command;
do
{
    System.out.println("Меню:");
    System.out.println("1. Показати привітання");
    System.out.println("2. Вийти");
    System.out.print("Виберіть дію: ");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("Вітаємо, світе!");
    }
    else if (!command.equals("2"))
    {
        System.out.println("Невідома команда.");
    }
}
while (!command.equals("2"));

System.out.println("До побачення!");

4. Таблиця: порівняння while та інших циклів

Тип циклу Перевірка умови Скільки разів може виконатися тіло Де доречно
while
Перед 0 або більше разів Коли заздалегідь невідома кількість повторень
do-while
Після 1 або більше разів Коли важливо, щоб тіло виконалося бодай один раз
for
Перед 0 або більше разів Коли відома кількість ітерацій
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ