Hvordan fungerer Java do-while-løkken?
Java-do-while-sløjfen sikrer, at et program udfører instruktioner, indtil en defineret afslutningsbetingelse er opfyldt. Du kan også kombinere sløjfen med andre funktioner.
Hvad er en do-while-loop?
Do-while-løkken bruges i Java til at udføre og gentage en instruktion, indtil en defineret afslutningsbetingelse er opfyldt (dvs. sand). Lignende løkker findes i de fleste programmeringssprog og bruges til at udføre bestemte kodeblokke flere gange. Løkken kan også kombineres med andre funktioner. 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);javaLoopen starter med nøgleordet do, efterfulgt af de instruktioner eller kommandoer, som programmet skal udføre. Efter den afsluttende parentes vises nøgleordet while, som udløser loopens afslutningsbetingelse. Denne betingelse udtrykkes altid som en boolsk udtryk, hvilket betyder, at den inden for programmets logik evalueres til enten sand eller falsk. Et almindeligt og nyttigt eksempel på et sådant udtryk er en tællervariabel, 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 programmet på instruktionerne i løkkens krop og udfører dem. Når dette er afsluttet, kontrollerer det afslutningsbetingelsen. Hvis denne er sand (dvs. endnu ikke opfyldt), starter løkken forfra og gentager alle sætninger, indtil den kontrolleres igen. Så snart afslutningsbetingelsen er opfyldt og derfor falsk, afslutter programmet imidlertid løkken og fortsætter med resten af koden.
Eksempel på en simpel løkke
For at illustrere, 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-operatoren ++ øges denne værdi med 1 for hver gennemgang og vises med Java-kommandoen System.out.println. Vores afslutningsbetingelse 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);
}
}javaHvis vi udfører denne kode, får vi følgende output:
10
11
12
13
14
15
16
17
18
19javaProgrammet 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 afslutningsbetingelsen 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 afslutningsbetingelse. For at afslutte løkken skal du manuelt bruge kombinationen [Ctrl] + [C]. Den tilhørende 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);
}
}javaHvis 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+cjavaHvis du ikke afslutter løkken manuelt, fortsætter den med at køre.
Forskellen 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 afslutningsbetingelse 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 kommandoerne udføres mindst én gang, bør du bruge do-while-løkken. Hvis beslutningen om at afslutte er kritisk, bør du i stedet overveje at bruge den hovedstyrede while-løkke.