1. Omgekeerde lus

Java heeft nog een ander soort whilelus: de do-whilelus. Het lijkt erg op de gewone whilelus en bestaat ook uit slechts twee delen: een "conditie" en een "luslichaam". De hoofdtekst van de lus wordt keer op keer uitgevoerd zolang de voorwaarde is true. Over het algemeen ziet een do-whilelus er zo uit:

do
   statement;
while (condition);

of

do
{
   block of statements
}
while (condition);

Voor een whilelus is de volgorde van uitvoering: condition , loop body , condition , loop body , condition , loop body , ...

Maar voor een do-whileloop is het iets anders: loop body , condition , loop body , condition , loop body , ...

In feite is het enige verschil tussen een whilelus en do-whileeen lus het feit dat de hoofdtekst van de lus minstens één keer wordt uitgevoerd voor een do-whilelus.


2. Voordelen van het gebruik van een do-whilelus

In wezen is het enige verschil tussen een do-whilelus en een whilelus dat de hoofdtekst van een do-whilelus minstens één keer wordt uitgevoerd.

Over het algemeen wordt een do-whilelus gebruikt wanneer het geen zin heeft om de lusvoorwaarde te controleren als de hoofdtekst van de lus niet is uitgevoerd. Als bepaalde berekeningen bijvoorbeeld worden uitgevoerd in de hoofdtekst van de lus en vervolgens worden gebruikt in de voorwaarde .

Voorbeeld:

Het programma leest regels van het toetsenbord totdat het woord exitis ingevoerd

terwijl doen terwijl
String s;
while (true)
{
   s = console.nextLine();
   if (s.equals("exit"))
      break;
}
String s;
do
{
   s = console.nextLine();
}
while (!s.equals("exit"));

De instructies breakand continuein een do-whilelus werken op dezelfde manier als in een whilelus.


do-while3. Loops vergelijken : Java versus Pascal

Nogmaals, Pascal heeft een analoog van de do-whilelus, maar het wordt een repeat-untillus genoemd. Het is ook iets anders dan de do-whilelus. In een repeat-untillus geeft de voorwaarde aan wanneer de lus moet worden verlaten in plaats van wanneer deze moet worden voortgezet.

Voorbeelden:

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

Vergeleken met Java is de manier waarop Pascal dit weergeeft ronduit prachtig. We moeten beginnen met voorbeelden van Pascal, anders lach je.