1. Omgekeerde lus
Java heeft nog een ander soort while
lus: de do-while
lus. Het lijkt erg op de gewone while
lus 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-while
lus er zo uit:
do
statement;
while (condition);
of
do
{
block of statements
}
while (condition);
Voor een while
lus is de volgorde van uitvoering: condition , loop body , condition , loop body , condition , loop body , ...
Maar voor een do-while
loop is het iets anders: loop body , condition , loop body , condition , loop body , ...
In feite is het enige verschil tussen een while
lus en do-while
een lus het feit dat de hoofdtekst van de lus minstens één keer wordt uitgevoerd voor een do-while
lus.
2. Voordelen van het gebruik van een do-while
lus
In wezen is het enige verschil tussen een do-while
lus en een while
lus dat de hoofdtekst van een do-while
lus minstens één keer wordt uitgevoerd.
Over het algemeen wordt een do-while
lus 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 exit
is ingevoerd
terwijl | doen terwijl |
---|---|
|
|
De instructies break
and continue
in een do-while
lus werken op dezelfde manier als in een while
lus.
do-while
3. Loops vergelijken : Java versus Pascal
Nogmaals, Pascal heeft een analoog van de do-while
lus, maar het wordt een repeat-until
lus genoemd. Het is ook iets anders dan de do-while
lus. In een repeat-until
lus geeft de voorwaarde aan wanneer de lus moet worden verlaten in plaats van wanneer deze moet worden voortgezet.
Voorbeelden:
Pascal | Java |
---|---|
|
|
Vergeleken met Java is de manier waarop Pascal dit weergeeft ronduit prachtig. We moeten beginnen met voorbeelden van Pascal, anders lach je.