Java-slingan do-while sä­ker­stäl­ler att ett program utför in­struk­tio­ner tills ett de­fi­ni­e­rat av­slut­nings­vill­kor uppnås. Du kan också kombinera slingan med andra funk­tio­ner.

Vad är en do-while-slinga?

Do-while-slingan används i Java för att utföra och upprepa en in­struk­tion tills ett de­fi­ni­e­rat av­slut­nings­vill­kor är uppfyllt (dvs. sant). Liknande slingor finns i de flesta pro­gram­me­rings­språk och används för att utföra vissa kodblock flera gånger. Slingan kan också kom­bi­ne­ras med andra funk­tio­ner. I Java är do-while-slingan en variant av while-slingan.

Vad är syntaxen för Java:s do-while-slinga?

Syntaxen för do-while-slingan i Java ser ut så här:

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

Slingan börjar med nyc­kelor­det do, följt av in­struk­tio­ner­na eller kommandot som pro­gram­met ska utföra. Efter den av­slu­tan­de pa­ren­te­sen visas nyc­kelor­det while, som utlöser slingans av­slut­nings­vill­kor. Detta villkor uttrycks alltid som ett booleskt uttryck, vilket innebär att det inom pro­gram­mets logik ut­vär­de­ras till antingen sant eller falskt. Ett vanligt och an­vänd­bart exempel på ett sådant uttryck är en räk­nar­va­ri­a­bel, som gör att du kan bestämma hur många gånger slingan ska upprepas.

Hur slingan fungerar

När Java-slingan do-while körs, tittar pro­gram­met på in­struk­tio­ner­na i slingans kropp och kör dem. När detta är klart, kon­trol­le­rar det av­slut­nings­vill­ko­ret. Om detta är sant (dvs. ännu inte uppfyllt), startar slingan om från början och upprepar alla satser tills det kon­trol­le­ras igen. Men så snart av­slut­nings­vill­ko­ret är uppfyllt och därmed falskt, avslutar pro­gram­met slingan och fort­sät­ter med resten av koden.

Exempel på en enkel slinga

För att il­lu­stre­ra hur slingan fungerar visar vi dess struktur med hjälp av ett enkelt exempel. I följande exempel tilldelar vi variabeln x värdet 10. Med hjälp av Java-operatorn ++ ökas detta värde med 1 för varje genomgång och visas med Java-kommandot System.out.println. Vårt av­slut­nings­vill­kor är värdet 20, så slingan upprepas så länge x är mindre än 20. Koden ser ut så här:

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

Om vi kör den här koden får vi följande resultat:

10
11
12
13
14
15
16
17
18
19
java

Pro­gram­met kör sedan slingan igen men känner igen värdet på x som 20. Eftersom det inte längre är mindre än 20 uppfylls av­slut­nings­vill­ko­ret och do-while-slingan avslutas.

Hur man skapar en oändlig loop med värdet true

Med hjälp av det booleska uttrycket true är det möjligt att utforma en oändlig slinga med do-while. Denna kommer aldrig att sluta av sig själv eftersom ingen av­slut­nings­vill­kor kan uppnås. För att avsluta slingan måste du manuellt använda kom­bi­na­tio­nen [Ctrl] + [C]. Mot­sva­ran­de kod ser ut så här:

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

Om du kör den här koden får du följande utdata:

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

Om du inte avslutar slingan manuellt kommer den att fortsätta att köras.

Skill­na­den mellan do-while och while

På många sätt liknar Java-slingorna do-while och while varandra. De skiljer sig dock åt i ett avgörande avseende, nämligen att while-slingan ut­vär­de­rar sitt av­slut­nings­vill­kor direkt i början, medan do-while-slingan alltid körs minst en gång i sin helhet innan den kan avslutas. Om du behöver sä­ker­stäl­la att kom­man­do­na exekveras minst en gång bör du använda do-while-slingan. Om beslutet om av­slut­ning är kritiskt bör du istället överväga att använda den hu­vud­styr­da while-slingan.

Gå till huvudmeny