Du liest:
Alles über die C# while Schleife (mit Codebeispielen)

Alles über die C# while Schleife (mit Codebeispielen)

von Patrick
21.05.2020
Die C# while-Schleife im Überblick

Oftmals führen wir ähnlichen Code mehrmals hintereinander aus. Um dies zu vereinfachen bedienen wir uns oft sogenannten Schleifen.
Zwei der Möglichkeiten dafür sind in C# while und dowhile.
Diese beiden möchte ich dir gerne in diesem Artikel vorstellen.

1. Die C# while Schleife

Um eine Schleife mit while zu verwenden, musst du nur eine Bedingung definieren, unter der bestimmter Quellcode ausgeführt wird.

while (Bedingung) {
    // auszuführender Quellcode
}

1.1. Einfache Anwendung der while-Schleife in C#

Die Bedingung für eine while-Schleife kann ein einfacher boolescher Ausdruck sein.
Die Schleife wird so lange ausgeführt, bis die Bedingung nicht mehr true ist.

int i = 2;
while (i < 5) {
    Console.WriteLine($"i: {i}");
    i++;
}
i: 2
i: 3
i: 4

Wenn du nur true als Bedingung übergibst, erzeugst du eine Endlosschleife.
Das folgende Beispiel schreibt „Hello World!“ in die Konsole, bis das Programm von außen abgebrochen wird.

while (true) {
    Console.WriteLine("Hello World!");
}

1.2. Den Ablauf einer C# while Schleife mit break und continue modifizieren

Mit break kannst du die Ausführung einer Schleife beenden. Am besten verwendest du diese Anweisung in Kombination mit einer weiteren Überprüfung.

int i = 0;
while (i < 6) {
    i++;
    if (i == 3) {
        break;
    }
    Console.WriteLine(i);
}
1
2

Das vorige Beispiel hat die Ausführung der Schleife beendet, da innerhalb des if-Statements eine break-Anweisung formuliert wurde.
Mit continue kannst du die aktuelle Iteration der Schleife beenden und die Nächste beginnen.

int i = 0;
while (i < 6) {
    i++;
    if (i == 3) {
        continue;
    }
    Console.WriteLine(i);
}
1
2
4
5
6

Das vorige Beispiel hat durch die Verwendung von continue den Wert 3 übersprungen.

1.3. Verschachtelte while Schleifen

Du kannst auch eine neue Schleife innerhalb einer Schleife erstellen.

int i = 0;
while (i < 2) {
    Console.WriteLine($"i: {i}");
    i++;
    int j = i;
    while (j < 3) {
        Console.WriteLine($"j: {j}");
        j++;
    }
}
i: 0
j: 1
j: 2
i: 1
j: 2

1.4. Methode als Bedingung der Schleife festlegen

Du kannst deine Bedingung auch als Methode übergeben, sofern diese einen Boolean zurückgibt. In dieser kannst du auch weitere Anweisungen formulieren.
Im folgenden Beispiel wird der Code vollständig in der Bedingung ausgeführt.

static void Main(string[] args) {
    while(Methode()) {; }
}

static int static_int = 0;

static bool Methode() {
    Console.WriteLine(static_int);
    static_int++;
    return static_int < 5;
}
0
1
2
3
4

2. Das C# do

Du kannst auch erst den Quellcode, der ausgeführt werden soll, definieren und danach die Bedingung. Dafür musst du zuerst do angeben, danach while mit der Bedingung.

i = -1;
do {
    Console.WriteLine(i);
    i++;
} while (i < 0);
// -1

Das hat zur Folge, dass die Schleife immer mindestens einmal ausgeführt wird, auch wenn die Auswertung der Bedingung schon beim ersten Durchlauf false ergibt.

int i = 1;
do {
    Console.WriteLine(i);
} while (i < 0);
// 1

2.1. Do-While Schleifenablauf mit break und continue modifizieren

Du kannst break in Kombination mit do genauso anwenden, wie nur mit while.

int i = 0;
do {
    i++;
    if (i == 3) {
        break;
    }
    Console.WriteLine(i);
} while (i < 5);
1
2

Das gleiche gilt für continue.

int i = 0;
do {
    i++;
    if (i == 3) {
        continue;
    }
    Console.WriteLine(i);
} while (i < 5);
1
2
4
5

3. Fazit

while-Schleifen sind eine sehr einfache Möglichkeit, ähnlichen Code mehrfach hintereinander auszuführen. Mit do kannst du sicherstellen, dass die Anweisungen mindestens einmal ausgeführt werden. break und continue lassen dich den Schleifenablauf genauer manipulieren. Zwei weitere mögliche Schleifen sind for und foreach, zu denen wir hier einen Artikel haben.

Hast du Fragen oder Verbesserungsvorschläge? Schreib es bitte in die Kommentare!



2 Kommentare
  1. Markus Blank
    18.08.2022

    2.1 ist nicht ganz richtig. Die "3"wird nicht ausgegeben
    int i = 0;
    do {
    i++;
    if (i == 3) {
    continue;
    }
    Console.WriteLine(i);
    } while (i < 5);

    Ausgabe:
    1
    2
    4
    5

    Grüße, @markusmartinblank

    Antworten Reply
    • Pero
      20.08.2022

      Hey Markus,

      vielen Dank für deinen Hinweis! Wir haben den Fehler nun behoben.

      Beste Grüße,
      Pero

      Antworten Reply

Schreibe einen Kommentar

Das könnte dich auch interessieren

Arrow-up

Programmieren lernen war noch nie so einfach.

Lerne von echten Experten durch echte Praxisprojekte und mit individueller Hilfe, falls du mal nicht weiterkommst!

keine Zahlungsdaten notwendig!