De Java do-while-lus zorgt ervoor dat een programma in­struc­ties uitvoert totdat een ge­de­fi­ni­eer­de be­ëin­di­gings­voor­waar­de is bereikt. U kunt de lus ook com­bi­ne­ren met andere functies.

Wat is een do-while-lus?

De do-while-lus wordt in Java gebruikt om een in­struc­tie uit te voeren en te herhalen totdat aan een ge­de­fi­ni­eer­de be­ëin­di­gings­voor­waar­de is voldaan (d.w.z. waar is). Soort­ge­lij­ke lussen bestaan in de meeste pro­gram­meer­ta­len en worden gebruikt om bepaalde blokken code meerdere keren uit te voeren. De lus kan ook worden ge­com­bi­neerd 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);
java

De lus begint met het sleu­tel­woord do, gevolgd door de in­struc­ties of het commando dat het programma moet uitvoeren. Na de sluitende haakjes ver­schijnt het sleu­tel­woord while, dat de be­ëin­di­gings­voor­waar­de van de lus activeert. Deze voor­waar­de wordt altijd uit­ge­drukt als een Boole­aan­se uit­druk­king, wat betekent dat deze binnen de logica van het programma wordt ge­ë­va­lu­eerd als waar of onwaar. Een veel­voor­ko­mend en nuttig voorbeeld van een der­ge­lij­ke uit­druk­king is een tel­l­er­va­ri­a­be­le, waarmee u kunt bepalen hoe vaak de lus moet worden herhaald.

Hoe de lus werkt

Wanneer de Java do-while-lus wordt uit­ge­voerd, bekijkt het programma de in­struc­ties binnen het lus­li­chaam en voert deze uit. Zodra dit is voltooid, con­tro­leert het de be­ëin­di­gings­voor­waar­de. Als deze waar is (d.w.z. nog niet is vervuld), begint de lus vanaf het begin en herhaalt alle in­struc­ties totdat deze opnieuw wordt ge­con­tro­leerd. Zodra echter aan de be­ëin­di­gings­voor­waar­de 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 een­vou­di­ge lus

Om te il­lu­stre­ren 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 weer­ge­ge­ven met het Java-commando System.out.println. Onze be­ëin­di­gings­voor­waar­de 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);
	}
}
java

Als we deze code uitvoeren, krijgen we de volgende uitvoer:

10
11
12
13
14
15
16
17
18
19
java

Het programma voert ver­vol­gens de lus opnieuw uit, maar herkent de waarde van x als 20. Aangezien deze niet langer kleiner is dan 20, is aan de be­ëin­di­gings­voor­waar­de voldaan en wordt de do-while-lus beëindigd.

Hoe maak je een oneindige lus met de waarde true

Met behulp van de Boole­aan­se uit­druk­king true is het mogelijk om een eindeloze lus te ontwerpen met do-while. Deze zal nooit vanzelf stoppen, omdat er geen be­ëin­di­gings­voor­waar­de kan worden bereikt. Om de lus te be­ëin­di­gen, moet u handmatig de com­bi­na­tie [Ctrl] + [C] gebruiken. De bij­be­ho­ren­de 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);
	}
}
java

Als 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+c
java

Als 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 ver­schil­len echter op één cruciaal punt: de while-lus evalueert de be­ëin­di­gings­voor­waar­de direct aan het begin, terwijl de do-while-lus altijd minstens één keer volledig wordt uit­ge­voerd voordat deze kan worden beëindigd. Als u ervoor moet zorgen dat de commando’s minstens één keer worden uit­ge­voerd, moet u de do-while-lus gebruiken. Als de be­slis­sing om te be­ëin­di­gen cruciaal is, kunt u beter de head-con­trol­led while-lus gebruiken.

Ga naar hoofdmenu