# 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:

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

Loopen 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:

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

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

```java
10
11
12
13
14
15
16
17
18
19
```

Programmet 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:

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

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

```java
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
```

Hvis 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.


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-do-while-loekke/](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-do-while-loekke/) for AI/LLM consumption.