1. Обратен цикъл

Java има друг вид whileцикъл - do-whileцикълът. Той е много подобен на обикновения whileцикъл и също се състои само от две части: "condition" и "тяло на цикъла". Тялото на цикъла се изпълнява отново и отново, докато conditionто е true. Като цяло един do-whileцикъл изглежда така:

do
   statement;
while (condition);

or

do
{
   block of statements
}
while (condition);

За whileцикъл последователността на изпълнение е: condition , тяло на цикъл , condition , тяло на цикъл , condition , тяло на цикъл , ...

Но за do-whileцикъл е малко по-различно: тяло на цикъл , condition , тяло на цикъл , condition , тяло на цикъл , ...

Всъщност единствената разлика между whileцикъл и do-whileцикъл е фактът, че тялото на цикъла се изпълнява поне веднъж за do-whileцикъл.


2. Ползи от използването на do-whileцикъл

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

Обикновено do-whileцикъл се използва, когато няма смисъл да се проверява състоянието на цикъла, ако тялото на цикъла не е изпълнено. Например, ако определени изчисления се извършват в тялото на цикъла и след това се използват в conditionто .

Пример:

Програмата чете редове от клавиатурата до exitвъвеждане на думата

докато правете докато
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цикъл работят по същия начин, Howто в whileцикъл.


3. Сравняване do-whileна цикли: Java срещу Pascal

Още веднъж, Pascal има аналог на do-whileцикъла, но той се нарича repeat-untilцикъл. Освен това е малко по-различен от do-whileцикъла. В repeat-untilцикъл conditionто показва кога да излезете от цикъла, а не кога да го продължите.

Примери:

Паскал Java
 
Repeat
   ReadLn(s);
Until s = 'exit';
 
String s;
do {
   s = console.nextLine();
}
while ( !s.equals("exit") );

В сравнение с Java, начинът, по който Pascal представя това, е направо красив. Трябва да започнем с примери от Паскал, иначе ще се смеете.