Direkt zum Hauptinhalt springen
eLearner.app
Modul 2 · Lektion 2 von 57/50 im Kurs~10 min
Lektionen des Moduls (2/5)

for: die einzige Schleife

Go hat ein einzelnes Schleifenkonstrukt: for. Nein while, nein do-while, kein foreach (das kommt in der nächsten Lektion mit range). Ein einziges Schlüsselwort deckt dank drei Formen alle Fälle ab.

Die drei Formen von for

Klassische Drei-Satz-Form

Identisch mit C/Java:

Go
for i := 0; i < 5; i++ {
    fmt.Println(i)
}

Der Gültigkeitsbereich von i ist auf for beschränkt. Die drei Klauseln sind optional (Sie können lassen Sie einen davon weg), aber der ; bleibt bestehen, wenn Sie einen Zwischencode weglassen.

„while“-Form: nur Bedingung

In Go ist while einfach ein for mit einem einzelnen bool-Ausdruck:

Go
i := 0
for i < 5 {
    fmt.Println(i)
    i++
}

Unendliche Form

Ohne Klauseln wird die Schleife nie beendet (es sei denn, break/return):

Go
for {
    if exitCondition() {
        break
    }
    doWork()
}

Es ist das Muster für Ereignisbehandlungsschleifen, Server und Wiederholungsrichtlinien.

break, continue und Etiketten

break verlässt die innerste Schleife, continue springt zur nächsten Iteration:

Go
for i := 0; i < 10; i++ {
    if i%2 == 0 {
        continue       // salta i pari
    }
    if i > 7 {
        break          // ferma il ciclo
    }
    fmt.Println(i)     // 1 3 5 7
}

Um verschachtelte Schleifen zu verlassen, gibt es Beschriftungen (selten, aber nützlich):

Go
Esterno:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i*j == 4 {
            break Esterno   // esce da entrambi
        }
    }
}

Kein ,-Operator wie in C

In Go können Sie for i, j := 0, 10; i < j; i, j = i+1, j-1 nicht schreiben: Der Beitragsausdruck akzeptiert keine Mehrfachzuweisungen. Verwenden Sie Go's Mehrfachzuweisungssyntax:

Go
for i, j := 0, 10; i < j; i, j = i+1, j-1 {
    fmt.Println(i, j)
}

Dies funktioniert stattdessen, weil i, j = i+1, j-1 ein Single ist Mehrfachbelegung.

Probieren Sie es aus

Übung#go.m2.l2.e1
Versuche: 0Wird geladen…

Geben Sie die Zahlen von 0 bis einschließlich 4 mit einem klassischen Dreisatz für an.

Editor wird geladen…
Hinweis anzeigen

`for init; cond; post { ... }` – hier ist init `i := 0`.

Lösung nach 3 Versuchen verfügbar

Übung#go.m2.l2.e2
Versuche: 0Wird geladen…

Summieren Sie alle Zahlen von 1 bis einschließlich 10 unter Verwendung der „while“-Form von for zur Summe.

Editor wird geladen…
Hinweis anzeigen

'while'-Form: `for <condition> { ... }`.

Lösung nach 3 Versuchen verfügbar

Quiz#go.m2.l2.e3
Bereit

Welche Form stellt eine Endlosschleife in Go dar?

Go
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }
Antwortoptionen

Zusammenfassung

– Ein einzelnes Schlüsselwort for mit drei Formen: klassisch, while, unendlich.

  • break / continue optional mit Beschriftung für verschachtelte Schleifen.
  • Beschriften Sie Name: vor for, sparsam verwenden.
  • Kein , als Operator: Nutzen Sie die Mehrfachzuweisung i, j = ..., ....