> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baenninger.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Loops

Im Programmieren wird ein Loop dazu genutzt, einen Codeblock so lange zu wiederholen, bis die spezifizierte Kondition nicht mehr erfüllt wird.

## `for` loop﻿

```c theme={null}
for (initializationStatement; testExpression; updateStatement)
{
    // statements inside the body of loop
}
```

* Die Initialisierungsanweisung wird nur einmal ausgeführt.
* Dann wird der Testausdruck ausgewertet. Wenn der Testausdruck als falsch evaluiert wird, wird die `for`-Schleife beendet.
* Wird der Testausdruck jedoch als wahr evaluiert, werden die Anweisungen innerhalb des Körpers der `for`-Schleife ausgeführt und der Aktualisierungsausdruck wird ausgeführt.
* Der Testausdruck wird erneut ausgewertet.
* Dieser Prozess wird so lange fortgesetzt, bis der Testausdruck falsch ist. Wenn der Testexpressionswert falsch ist, wird die Schleife abgebrochen.

### Beispiel

```c theme={null}
#include <stdio.h>

int main()
{
    int i;

    for (i = 1; i <= 10; ++i)
    {
        printf("%d ", i);
    }
    return 0;
}
```

1. `i` wird auf 1 initialisiert.
2. Der Testausdruck `i < 11` wird ausgewertet. Da 1 kleiner als 11 wahr ist, wird der Körper der `for`-Schleife ausgeführt. Dadurch wird die 1 (Wert von i) auf dem Bildschirm ausgegeben.
3. Die Aktualisierungsanweisung `++i` wird ausgeführt. Jetzt ist der Wert von `i` gleich 2. Wieder wird der Testausdruck als wahr ausgewertet und der Körper der `for`-Schleife wird ausgeführt. Dadurch wird 2 (Wert von `i`) auf dem Bildschirm ausgegeben.
4. Wieder wird die Aktualisierungsanweisung `++i` ausgeführt und der Testausdruck `i < 11` ausgewertet. Dieser Prozess wird so lange fortgesetzt, bis `i` 11 wird.
5. Wenn `i` 11 wird, ist `i < 11` falsch, und die `for`-Schleife wird beendet.

## `while` Loop

Die `while`-Schleife ist eine weitere Möglichkeit, Codeblöcke wiederholt auszuführen. Sie wiederholt den Code, solange der Testausdruck als wahr evaluiert wird.

```c theme={null}
while (testExpression) {
    // statements inside the body of loop
}
```

Die `while`-Schleife funktioniert wie folgt:

1. Der Testausdruck wird ausgewertet.
2. Wenn der Testausdruck wahr ist, wird der Codeblock innerhalb der Schleife ausgeführt.
3. Der Testausdruck wird erneut ausgewertet.
4. Dieser Prozess wird wiederholt, bis der Testausdruck falsch ist.

### Beispiel

```c theme={null}
#include <stdio.h>

int main() {
    int i = 1;
    while (i <= 10) {
        printf("%d ", i);
        ++i;
    }
    return 0;
}
```

Hier wird `i` mit `1` initialisiert. Die Bedingung `i <= 10` wird überprüft, und solange sie wahr ist, wird `i` auf dem Bildschirm ausgegeben und anschliessend inkrementiert. Sobald `i` den Wert `11` erreicht, wird die Schleife beendet.

## `break`

Die `break`-Anweisung wird verwendet, um eine Schleife vorzeitig zu beenden. Sobald `break` innerhalb einer Schleife ausgeführt wird, wird die Schleife sofort verlassen und das Programm setzt seinen Ablauf nach der Schleife fort.

### Beispiel

```c theme={null}
#include <stdio.h>

int main() {
    int i;
    for (i = 1; i <= 10; ++i) {
        if (i == 5) {
            break;
        }
        printf("%d ", i);
    }
    return 0;
}
```

In diesem Beispiel wird die Schleife abgebrochen, sobald `i == 5` erfüllt ist.

```text title="Ausgabe" theme={null}
1 2 3 4
```

## `continue`

Die `continue`-Anweisung überspringt die aktuelle Iteration der Schleife und fährt mit der nächsten fort. Anders als `break` beendet `continue` nicht die gesamte Schleife, sondern fährt mit der nächsten Iteration fort.

### Beispiel

```c theme={null}
#include <stdio.h>

int main() {
    int i;
    for (i = 1; i <= 10; ++i) {
        if (i == 5) {
            continue;
        }
        printf("%d ", i);
    }
    return 0;
}
```

In diesem Beispiel wird `i == 5` übersprungen, aber die Schleife läuft weiter.

```text title="Ausgabe" theme={null}
1 2 3 4 6 7 8 9 10
```
