JavaRush /Курсы /Java Syntax Pro /Цикл do-while

Цикл do-while

Java Syntax Pro
4 уровень , 5 лекция
Открыта

1. Обратный цикл

В Java есть еще одна разновидность цикла while — цикл do-while. Он очень похож на while и тоже состоит всего из двух частей: «условие» и «тело цикла». Тело цикла выполняется снова и снова, пока условие равно true. Общий вид цикла do-while такой:

do
   команда;
while (условие);

или

do
{
   блок команд
}
while (условие);

Но если в цикле while последовательность выполнения будет такой: условие, тело цикла, условие, тело цикла, условие, тело цикла, ...

То в do-while она будет немного другой: тело цикла, условие, тело цикла, условие, тело цикла, ...

Фактически разница между while и do while только в том, что тело цикла в цикле do-while выполняется как минимум один раз.


2. Выгоды от использования цикла do-while

Собственно, единственное отличие цикла do-while от цикла while как раз и состоит в том, что тело цикла в цикле do-while выполняется как минимум один раз.

Цикл do-while обычно используют именно тогда, когда нет смысла проверять условие, если тело цикла не выполнилось. Например, в теле цикла проходят какие-нибудь вычисления, и их результаты используются в условии.

Пример:

Программа вводит строки с клавиатуры, пока не введено слово exit

while do while
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
 s = console.nextLine();
}
while (!s.equals("exit"));

операторы break и continue в цикле do-while работают точно так же, как в цикле while.


3. Сравнение циклов do-while: Java vs Pascal

В Паскале опять-таки есть аналог цикла do-while, только называется он repeat-until. Однако он немного отличается от цикла do-while. В цикле repeat-until в условии нужно указывать условие не для продолжения цикла, а для выхода из него.

Примеры:

Pascal Java
 
Repeat
   ReadLn(s);
Until s = 'exit';
 
String s;
do {
   s = console.nextLine();
} while ( !s.equals("exit") );

Что-то тут Pascal прямо красавчик по сравнению с Java. Нужно завязывать с примерами из Паскаля, а то засмеют.


Комментарии (626)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Amonimonus Уровень 4
14 января 2026
Косноязычно описаны требования, я вообще не понимаю что от меня хотят?!
Timur Salakhov Уровень 10
20 января 2026
на работе будет также
Анна Клушкина Уровень 12
4 января 2026
⛏ продолжаем прорабатывать циклы
MaryAm Уровень 5
23 декабря 2025

        Scanner console = new Scanner(System.in);
        String s = console.nextLine();
        int a = console.nextInt(), count = 0;
        if (a > 0 && a < 5) {
            do {
                System.out.println(s);
                count += 1;
            }
            while (count < a);
        } else System.out.println(s);
говно-код как говорится, зато сям🥳
Dmitry Уровень 11
2 декабря 2025
На удивление решил за минут 10, т.к. сразу не учел, что если поставить <5, то к всегда выполняемой 1-ой команде будет еще 4 добавляться, т.е. будет 5 строк, а максимальное значение по условию - 4 строки. Мозг начинает немного перестраиваться и мыслить в рамках языка программирования - это радует:) Всем успехов и веры в себя!
Anonymous #3660090 Уровень 10
29 ноября 2025
У меня сейчас голова взорвется от информации
Роман Зарубин Уровень 8
26 ноября 2025
работаем
kaddlz Уровень 23
26 ноября 2025

/* 
Хорошего не бывает много
*/

public class Solution {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        String word = console.next();
        int number = console.nextInt();
        do {
            System.out.println(word);
            number--;
        } while (number > 0 && number < 4);
    }
}
Nik Уровень 10
21 ноября 2025
public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); String line = keyboard.nextLine(); int coontLines = keyboard.nextInt(); int i = 0; if(coontLines >= 5 || coontLines <= 0){ System.out.println(line); }else{ do { System.out.println (line); i++; } while(i < coontLines); { } } } } быстро решил благодаря дебагеру в "идее" без него тяжко это всё в голове прогонять весь цикл
Ann Уровень 6 Expert
25 октября 2025
Для большего понимания здесь перед практической задачей "Хорошего много не бывает", не хватает еще более простой задачи, чтобы потренироваться с самим циклом, понять его суть и последовательность. А то начинаешь путаться, вижу как и другие в комментариях, тоже пытаются дополнить задачу if или for, а в итоге можно было решить намного проще.
Ramzan Уровень 6
24 октября 2025
Задание более менее адекватное по сравнению с заданиями в цикле while(), там вообще лес!