Hoe werkt de Java do-while-lus?
De Java do-while-lus zorgt ervoor dat een programma instructies uitvoert totdat een gedefinieerde beëindigingsvoorwaarde is bereikt. U kunt de lus ook combineren met andere functies.
Wat is een do-while-lus?
De do-while-lus wordt in Java gebruikt om een instructie uit te voeren en te herhalen totdat aan een gedefinieerde beëindigingsvoorwaarde is voldaan (d.w.z. waar is). Soortgelijke lussen bestaan in de meeste programmeertalen en worden gebruikt om bepaalde blokken code meerdere keren uit te voeren. De lus kan ook worden gecombineerd met andere functies. In Java is de do-while-lus een variant van de while-lus.
Wat is de syntaxis voor de do-while-lus in Java?
De syntaxis van de do-while-lus in Java ziet er als volgt uit:
do {
//statements
}
while(condition);javaDe lus begint met het sleutelwoord do, gevolgd door de instructies of het commando dat het programma moet uitvoeren. Na de sluitende haakjes verschijnt het sleutelwoord while, dat de beëindigingsvoorwaarde van de lus activeert. Deze voorwaarde wordt altijd uitgedrukt als een Booleaanse uitdrukking, wat betekent dat deze binnen de logica van het programma wordt geëvalueerd als waar of onwaar. Een veelvoorkomend en nuttig voorbeeld van een dergelijke uitdrukking is een tellervariabele, waarmee u kunt bepalen hoe vaak de lus moet worden herhaald.
Hoe de lus werkt
Wanneer de Java do-while-lus wordt uitgevoerd, bekijkt het programma de instructies binnen het luslichaam en voert deze uit. Zodra dit is voltooid, controleert het de beëindigingsvoorwaarde. Als deze waar is (d.w.z. nog niet is vervuld), begint de lus vanaf het begin en herhaalt alle instructies totdat deze opnieuw wordt gecontroleerd. Zodra echter aan de beëindigingsvoorwaarde is voldaan en deze dus onwaar is, beëindigt het programma de lus en gaat het verder met de rest van de code.
Voorbeeld van een eenvoudige lus
Om te illustreren hoe de lus werkt, laten we u de structuur ervan zien aan de hand van een eenvoudig voorbeeld. In het volgende voorbeeld kennen we aan de variabele x de waarde 10 toe. Met behulp van de Java-operator ++ wordt deze waarde bij elke doorloop met 1 verhoogd en weergegeven met het Java-commando System.out.println. Onze beëindigingsvoorwaarde is de waarde 20, dus de lus wordt herhaald zolang x kleiner is dan 20. De code ziet er als volgt uit:
public class Main {
public static void main(String[] args) {
int x = 10;
do {
System.out.println(x);
x++;
}
while (x < 20);
}
}javaAls we deze code uitvoeren, krijgen we de volgende uitvoer:
10
11
12
13
14
15
16
17
18
19javaHet programma voert vervolgens de lus opnieuw uit, maar herkent de waarde van x als 20. Aangezien deze niet langer kleiner is dan 20, is aan de beëindigingsvoorwaarde voldaan en wordt de do-while-lus beëindigd.
Hoe maak je een oneindige lus met de waarde true
Met behulp van de Booleaanse uitdrukking true is het mogelijk om een eindeloze lus te ontwerpen met do-while. Deze zal nooit vanzelf stoppen, omdat er geen beëindigingsvoorwaarde kan worden bereikt. Om de lus te beëindigen, moet u handmatig de combinatie [Ctrl] + [C] gebruiken. De bijbehorende code ziet er als volgt uit:
public class Main {
public static void main(String[] args) {
do {
System.out.println("You are in an endless loop.");
}
while(true);
}
}javaAls u deze code uitvoert, krijgt u de volgende uitvoer:
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
You are in an endless loop.
ctrl+cjavaAls u de lus niet handmatig beëindigt, blijft deze actief.
Het verschil tussen do-while en while
In veel opzichten lijken de Java do-while-lus en de while-lus op elkaar. Ze verschillen echter op één cruciaal punt: de while-lus evalueert de beëindigingsvoorwaarde direct aan het begin, terwijl de do-while-lus altijd minstens één keer volledig wordt uitgevoerd voordat deze kan worden beëindigd. Als u ervoor moet zorgen dat de commando’s minstens één keer worden uitgevoerd, moet u de do-while-lus gebruiken. Als de beslissing om te beëindigen cruciaal is, kunt u beter de head-controlled while-lus gebruiken.