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 представя това, е направо красив. Трябва да започнем с примери от Паскал, иначе ще се смеете.


2
Задача
Java Syntax,  нивоурок
Заключено
Cat's finalize method
It's difficult to accidentally lose an object: as long as you have even one reference to an object, it remains alive. But if not, then the object is approached by the finalize method, an unpredictable assassin that works for the Java machine. Let's create this method ourselves: protected void finalize() throws Throwable. The last two words will become clear a little later.