1. Bucla inversă

Java are un alt tip de whilebuclă - do-whilebucla. Este foarte asemănător cu whilebucla obișnuită și, de asemenea, constă din doar două părți: o „condiție” și un „corp de buclă”. Corpul buclei este executat din nou și din nou atâta timp cât condiția este true. În general, o do-whilebuclă arată astfel:

do
   statement;
while (condition);

sau

do
{
   block of statements
}
while (condition);

Pentru o whilebuclă, secvența de execuție este: condiție , corp buclă , condiție , corp buclă , condiție , corp buclă , ...

Dar pentru o do-whilebuclă, este puțin diferit: corpul buclei , condiția , corpul buclei , condiția , corpul buclei , ...

De fapt, singura diferență dintre o whilebuclă și do-whileo buclă este faptul că corpul buclei este executat cel puțin o dată pentru o do-whilebuclă.


2. Beneficiile utilizării unei do-whilebucle

Practic, singura diferență dintre o do-whilebuclă și o whilebuclă este că corpul unei do-whilebucle este executat cel puțin o dată.

În general, o do-whilebuclă este utilizată atunci când nu are sens să se verifice starea buclei dacă corpul buclei nu a fost executat. De exemplu, dacă anumite calcule sunt efectuate în corpul buclei și apoi utilizate în condiția .

Exemplu:

Programul citește linii de la tastatură până când exiteste introdus cuvântul

in timp ce face în timp ce
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
   s = console.nextLine();
}
while (!s.equals("exit"));

Declarațiile breakși continuedintr-o do-whilebuclă funcționează în același mod ca și într-o whilebuclă.


3. Compararea do-whilebuclelor: Java vs Pascal

Încă o dată, Pascal are un analog al do-whilebuclei, dar se numește repeat-untilbuclă. De asemenea, este ușor diferită de do-whilebuclă. Într-o repeat-untilbuclă, condiția indică când să ieși din buclă, mai degrabă decât când să o continui.

Exemple:

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

În comparație cu Java, modul în care Pascal reprezintă acest lucru este de-a dreptul frumos. Trebuie să începem cu exemple de la Pascal, altfel vei râde.