# Kontrollstrukturen: Verzweigungen und Schleifen

> Kontrollstrukturen steuern, in welcher Reihenfolge die Anweisungen eines Programms ausgeführt werden. Es gibt drei Grundtypen: die Sequenz (nacheinander), die Verzweigung (Entscheidung mit if/else) und die Schleife (Wiederholung mit while oder for). Aus diesen drei Bausteinen lässt sich jeder Algorithmus zusammensetzen.

**Autor:** Mr. Benjamin · **Beruf:** IT-Grundlagen
**Veröffentlicht:** 2026-07-25 · **Aktualisiert:** 2026-07-25
**Quelle:** https://yellowbluetech.de/blog/kontrollstrukturen-programmierung

---

Ein Programm, das nur stur eine Zeile nach der anderen abarbeitet, kann wenig. Erst wenn es **entscheiden** und **wiederholen** kann, wird es nützlich. Genau das leisten Kontrollstrukturen – und es gibt erstaunlich wenige davon.

## Was sind Kontrollstrukturen?

Kontrollstrukturen bestimmen den **Ablauf** eines Programms: welche Anweisung wann und wie oft ausgeführt wird.

> **Merksatz**
>
> Es gibt drei Grundstrukturen, und mehr braucht es nicht: **Sequenz** (nacheinander), **Verzweigung** (entscheiden), **Schleife** (wiederholen). Jeder noch so große Algorithmus besteht nur aus diesen drei Bausteinen.

## Die Sequenz

Die einfachste Struktur: Anweisungen werden **von oben nach unten** ausgeführt, eine nach der anderen.

```text
lies Preis
lies Menge
berechne Summe = Preis * Menge
gib Summe aus
```

## Die Verzweigung

Eine Verzweigung führt Code **nur unter einer Bedingung** aus. Die Bedingung ist wahr oder falsch – abhängig davon geht es unterschiedlich weiter.

```text
WENN alter >= 18 DANN
    gib "volljährig" aus
SONST
    gib "minderjährig" aus
```

Gibt es mehr als zwei Fälle, nutzt man `sonst wenn` oder eine **Fallunterscheidung** (in vielen Sprachen `switch`).

## Die Schleife

Eine Schleife wiederholt Anweisungen. Zwei Typen sind zu unterscheiden:

| Typ | Wann | Merkmal |
| --- | --- | --- |
| **Zählschleife** (`for`) | Anzahl der Durchläufe steht fest | „mache das 10-mal" |
| **Bedingungsschleife** (`while`) | Anzahl hängt von einer Bedingung ab | „solange noch Eingaben da sind" |

```text
SOLANGE guthaben > 0 TUE
    ziehe monatsbeitrag ab
```

> **Prüfungstipp**
>
> Ein Klassiker ist der Unterschied zwischen **kopfgesteuerter** und **fußgesteuerter** Schleife. Die kopfgesteuerte (`while`) prüft die Bedingung **vor** dem ersten Durchlauf – sie kann also **null-mal** laufen. Die fußgesteuerte (`do…while`) prüft **danach** und läuft deshalb **mindestens einmal**. Diese Unterscheidung wird gern in Struktogramm- oder Trace-Aufgaben abgefragt.

## Die Endlosschleife: der häufigste Anfängerfehler

> **Hinweis**
>
> Eine Schleife braucht immer etwas, das die Bedingung irgendwann **falsch** werden lässt – sonst läuft sie ewig. Vergisst man in `SOLANGE guthaben > 0` den Abzug, sinkt das Guthaben nie und das Programm hängt. Beim Prüfen deiner eigenen Schleifen ist die wichtigste Frage darum: „Was ändert sich in jedem Durchlauf, und erreicht das jemals die Abbruchbedingung?" Wie man solche Abläufe sauber aufzeichnet, steht im Beitrag zu [Algorithmus, Struktogramm und PAP](/blog/algorithmus-struktogramm-pap).

## Selbstkontrolle

**Frage:** Eine Schleife soll auf jeden Fall mindestens einmal durchlaufen werden. Welchen Typ wählst du?

- [ ] Kopfgesteuerte Schleife (while)
- [x] Fußgesteuerte Schleife (do…while)
- [ ] Zählschleife (for)
- [ ] Verzweigung (if)

**Erklärung:** Die fußgesteuerte Schleife (do…while) prüft die Bedingung erst am Ende eines Durchlaufs. Deshalb wird ihr Rumpf immer mindestens einmal ausgeführt. Die kopfgesteuerte while-Schleife prüft dagegen vorher und kann null-mal laufen.

## Häufige Fragen

### Wann nehme ich for, wann while?

Nimm die Zählschleife for, wenn die Anzahl der Durchläufe von vornherein feststeht, etwa „für jeden der 30 Datensätze". Nimm die while-Schleife, wenn die Anzahl von einer Bedingung abhängt, die sich erst während der Ausführung entscheidet, etwa „solange noch Zeilen in der Datei stehen". Technisch lässt sich jede for-Schleife auch als while schreiben, aber die passende Wahl macht den Code lesbarer.

### Was ist eine geschachtelte Schleife?

Eine Schleife innerhalb einer anderen Schleife. Für jeden Durchlauf der äußeren läuft die innere komplett durch. Typisches Beispiel ist die Verarbeitung einer Tabelle: Die äußere Schleife geht über die Zeilen, die innere über die Spalten. Die Gesamtzahl der Durchläufe ist das Produkt beider – das kann schnell groß werden.

### Was bedeutet break und continue?

Mit break verlässt man eine Schleife vorzeitig, sobald ein Ziel erreicht ist, etwa wenn der gesuchte Eintrag gefunden wurde. Mit continue überspringt man nur den Rest des aktuellen Durchlaufs und macht mit dem nächsten weiter. Beide sind nützlich, sollten aber sparsam eingesetzt werden, weil zu viele Sprünge den Ablauf schwer nachvollziehbar machen.

### Warum reichen drei Grundstrukturen wirklich aus?

Das besagt das Strukturtheorem: Jeder berechenbare Algorithmus lässt sich allein mit Sequenz, Verzweigung und Schleife ausdrücken, ohne Sprungbefehle. Das ist die Grundlage der strukturierten Programmierung und der Grund, warum Struktogramme mit genau diesen Bausteinen auskommen. Mehr Konstrukte sind Komfort, keine Notwendigkeit.

**Weiterlesen:** [Variablen und Datentypen einfach erklärt](/blog/variablen-und-datentypen) · [Datenstrukturen: Array, Liste, Stack und Queue](/blog/datenstrukturen-grundlagen) · [Rekursion: wenn sich eine Funktion selbst aufruft](/blog/rekursion-erklaert) · [Sortier- und Suchalgorithmen verstehen](/blog/sortier-suchalgorithmen)

## Das Wichtigste in Kürze

- Drei Grundstrukturen genügen: **Sequenz, Verzweigung, Schleife**.
- **Verzweigung** = Entscheidung anhand einer wahr/falsch-Bedingung.
- **Zählschleife (for)**: feste Anzahl; **Bedingungsschleife (while)**: von Bedingung abhängig.
- **Kopfgesteuert** kann null-mal laufen, **fußgesteuert** mindestens einmal.
- Jede Schleife braucht eine erreichbare **Abbruchbedingung**, sonst wird sie endlos.
