Hur fungerar Java-slingan do-while?
Java-slingan do-while säkerställer att ett program utför instruktioner tills ett definierat avslutningsvillkor uppnås. Du kan också kombinera slingan med andra funktioner.
Vad är en do-while-slinga?
Do-while-slingan används i Java för att utföra och upprepa en instruktion tills ett definierat avslutningsvillkor är uppfyllt (dvs. sant). Liknande slingor finns i de flesta programmeringsspråk och används för att utföra vissa kodblock flera gånger. Slingan kan också kombineras med andra funktioner. 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);javaSlingan börjar med nyckelordet do, följt av instruktionerna eller kommandot som programmet ska utföra. Efter den avslutande parentesen visas nyckelordet while, som utlöser slingans avslutningsvillkor. Detta villkor uttrycks alltid som ett booleskt uttryck, vilket innebär att det inom programmets logik utvärderas till antingen sant eller falskt. Ett vanligt och användbart exempel på ett sådant uttryck är en räknarvariabel, 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 programmet på instruktionerna i slingans kropp och kör dem. När detta är klart, kontrollerar det avslutningsvillkoret. Om detta är sant (dvs. ännu inte uppfyllt), startar slingan om från början och upprepar alla satser tills det kontrolleras igen. Men så snart avslutningsvillkoret är uppfyllt och därmed falskt, avslutar programmet slingan och fortsätter med resten av koden.
Exempel på en enkel slinga
För att illustrera 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 avslutningsvillkor ä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);
}
}javaOm vi kör den här koden får vi följande resultat:
10
11
12
13
14
15
16
17
18
19javaProgrammet 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 avslutningsvillkoret 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 avslutningsvillkor kan uppnås. För att avsluta slingan måste du manuellt använda kombinationen [Ctrl] + [C]. Motsvarande 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);
}
}javaOm 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+cjavaOm du inte avslutar slingan manuellt kommer den att fortsätta att köras.
Skillnaden 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 utvärderar sitt avslutningsvillkor 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äkerställa att kommandona exekveras minst en gång bör du använda do-while-slingan. Om beslutet om avslutning är kritiskt bör du istället överväga att använda den huvudstyrda while-slingan.

