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. Нужно завязывать с примерами из Паскаля, а то засмеют.