Java-do-while-sløjfen sikrer, at et program udfører in­struk­tio­ner, indtil en defineret af­slut­nings­be­tin­gel­se er opfyldt. Du kan også kombinere sløjfen med andre funk­tio­ner.

Hvad er en do-while-loop?

Do-while-løkken bruges i Java til at udføre og gentage en in­struk­tion, indtil en defineret af­slut­nings­be­tin­gel­se er opfyldt (dvs. sand). Lignende løkker findes i de fleste pro­gram­me­rings­sprog og bruges til at udføre bestemte ko­de­blok­ke flere gange. Løkken kan også kom­bi­ne­res med andre funk­tio­ner. I Java er do-while-løkken en variant af while-løkken.

Hvad er syntaksen for Java’s do-while-loop?

Syntaksen for do-while-sløjfen i Java ser således ud:

do {
	//statements
}
while(condition);
java

Loopen starter med nøg­le­or­det do, ef­ter­fulgt af de in­struk­tio­ner eller kom­man­do­er, som pro­gram­met skal udføre. Efter den af­slut­ten­de parentes vises nøg­le­or­det while, som udløser loopens af­slut­nings­be­tin­gel­se. Denne be­tin­gel­se udtrykkes altid som en boolsk udtryk, hvilket betyder, at den inden for pro­gram­mets logik evalueres til enten sand eller falsk. Et al­min­de­ligt og nyttigt eksempel på et sådant udtryk er en tæl­ler­va­ri­a­bel, som giver dig mulighed for at bestemme, hvor mange gange loopen skal gentages.

Sådan fungerer sløjfen

Når Java do-while-løkken udføres, ser pro­gram­met på in­struk­tio­ner­ne i løkkens krop og udfører dem. Når dette er afsluttet, kon­trol­le­rer det af­slut­nings­be­tin­gel­sen. Hvis denne er sand (dvs. endnu ikke opfyldt), starter løkken forfra og gentager alle sætninger, indtil den kon­trol­le­res igen. Så snart af­slut­nings­be­tin­gel­sen er opfyldt og derfor falsk, afslutter pro­gram­met imid­ler­tid løkken og fort­sæt­ter med resten af koden.

Eksempel på en simpel løkke

For at il­lu­stre­re, hvordan løkken fungerer, viser vi dig dens struktur ved hjælp af et simpelt eksempel. I det følgende eksempel tildeler vi variablen x værdien 10. Ved hjælp af Java-ope­ra­to­ren ++ øges denne værdi med 1 for hver gen­nem­gang og vises med Java-kom­man­do­en System.out.println. Vores af­slut­nings­be­tin­gel­se er værdien 20, så sløjfen gentages, så længe x er mindre end 20. Koden ser således ud:

public class Main {
	public static void main(String[] args) {
		int x = 10;
		do {
			System.out.println(x);
			x++;
		}
		while (x < 20);
	}
}
java

Hvis vi udfører denne kode, får vi følgende output:

10
11
12
13
14
15
16
17
18
19
java

Pro­gram­met udfører derefter løkken igen, men genkender værdien af x som værende 20. Da den ikke længere er mindre end 20, er af­slut­nings­be­tin­gel­sen opfyldt, og do-while-løkken afsluttes.

Sådan oprettes en uendelig løkke med værdien true

Ved hjælp af det boolske udtryk true er det muligt at designe en endeløs løkke med do-while. Denne vil aldrig stoppe af sig selv, da der ikke kan nås nogen af­slut­nings­be­tin­gel­se. For at afslutte løkken skal du manuelt bruge kom­bi­na­tio­nen [Ctrl] + [C]. Den til­hø­ren­de kode ser således ud:

public class Main {
	public static void main(String[] args) {
		do {
			System.out.println("You are in an endless loop.");
		}
		while(true);
	}
}
java

Hvis du udfører denne kode, får du følgende output:

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

Hvis du ikke afslutter løkken manuelt, fort­sæt­ter den med at køre.

For­skel­len mellem do-while og while

På mange måder ligner Java-do-while-løkken og while-løkken hinanden. De adskiller sig dog på et afgørende punkt, nemlig at while-løkken vurderer sin af­slut­nings­be­tin­gel­se lige fra starten, mens do-while-løkken altid udføres mindst én gang i sin helhed, før den kan afsluttes. Hvis du skal sikre, at kom­man­do­er­ne udføres mindst én gang, bør du bruge do-while-løkken. Hvis be­slut­nin­gen om at afslutte er kritisk, bør du i stedet overveje at bruge den ho­ved­sty­re­de while-løkke.

Gå til ho­ved­me­nu­en