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.


2
Sarcină
Java Syntax,  nivellecţie
Blocat
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.