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 і Pascal

У мові 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. Годі вже приклади з Pascal показувати, а то засміють.