Einführung
Mitfor loops in Go können Sie Aufgaben effizient automatisieren und wiederholen.
Wenn Sie lernen, wie Sie den Betrieb und den Ablauf von Schleifen steuern, können Sie die Logik in Ihrem Programm anpassen. Sie können Ihre Schleifen mit den Anweisungenbreak
undcontinue
steuern.
Break-Anweisung
In Go beendet die Anweisungbreak
die Ausführung der aktuellen Schleife. Abreak
wird fast immer mit aconditional if
statement gepaart.
Schauen wir uns ein Beispiel an, das die Anweisungbreak
in einer Schleife vonfor
verwendet:
break.go
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("Breaking out of loop")
break // break here
}
fmt.Println("The value of i is", i)
}
fmt.Println("Exiting program")
}
Dieses kleine Programm erstellt einefor
-Schleife, die iteriert, währendi
kleiner als10
ist.
Innerhalb derfor
-Schleife gibt es eineif
-Anweisung. Die Anweisungif
testet die Bedingung voni
, um festzustellen, ob der Wert kleiner als5
ist. Wenn der Wert voni
nicht gleich5
ist, wird die Schleife fortgesetzt und der Wert voni
ausgedruckt. Wenn der Wert voni
gleich5
ist, führt die Schleife die Anweisungbreak
aus, gibt aus, dass es sich umBreaking out of loop
handelt, und beendet die Ausführung der Schleife. Am Ende des Programms drucken wirExiting program
aus, um anzuzeigen, dass wir die Schleife verlassen haben.
Wenn wir diesen Code ausführen, erhalten wir folgende Ausgabe:
OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Breaking out of loop
Exiting program
Dies zeigt, dass, sobald die Ganzzahli
als äquivalent zu 5 ausgewertet wird, die Schleife unterbrochen wird, da das Programm mit der Anweisungbreak
dazu aufgefordert wird.
Verschachtelte Schleifen
Es ist wichtig zu beachten, dass die Anweisungbreak
nur die Ausführung der innersten Schleife stoppt, in der sie aufgerufen wird. Wenn Sie eine verschachtelte Gruppe von Schleifen haben, benötigen Sie bei Bedarf eine Unterbrechung für jede Schleife.
nested.go
package main
import "fmt"
func main() {
for outer := 0; outer < 5; outer++ {
if outer == 3 {
fmt.Println("Breaking out of outer loop")
break // break here
}
fmt.Println("The value of outer is", outer)
for inner := 0; inner < 5; inner++ {
if inner == 2 {
fmt.Println("Breaking out of inner loop")
break // break here
}
fmt.Println("The value of inner is", inner)
}
}
fmt.Println("Exiting program")
}
In diesem Programm haben wir zwei Schleifen. Während beide Schleifen fünfmal iterieren, hat jede eine bedingteif
-Anweisung mit einerbreak
-Anweisung. Die äußere Schleife wird unterbrochen, wenn der Wert vonouter
gleich3
ist. Die innere Schleife wird unterbrochen, wenn der Wert voninner
2
ist.
Wenn wir das Programm ausführen, können wir die Ausgabe sehen:
OutputThe value of outer is 0
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 1
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 2
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
Breaking out of outer loop
Exiting program
Beachten Sie, dass bei jeder Unterbrechung der inneren Schleife die äußere Schleife nicht unterbrochen wird. Dies liegt daran, dassbreak
nur die innerste Schleife unterbricht, von der es aufgerufen wird.
Wir haben gesehen, wie die Verwendung vonbreak
die Ausführung einer Schleife stoppt. Schauen wir uns als nächstes an, wie wir die Iteration einer Schleife fortsetzen können.
Continue-Anweisung
Die Anweisungcontinue
wird verwendet, wenn Sie den verbleibenden Teil der Schleife überspringen und zum Anfang der Schleife zurückkehren und eine neue Iteration fortsetzen möchten.
Wie bei der Anweisungbreak
wird die Anweisungcontinue
häufig mit einer bedingten Anweisungif
verwendet.
Unter Verwendung des gleichenfor
-Schleifenprogramms wie im vorhergehenden AbschnittBreak Statement verwenden wir einecontinue
-Anweisung anstelle einerbreak
-Anweisung:
continue.go
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("Continuing loop")
continue // break here
}
fmt.Println("The value of i is", i)
}
fmt.Println("Exiting program")
}
Der Unterschied bei der Verwendung dercontinue
-Anweisung anstelle einerbreak
-Anweisung besteht darin, dass unser Code trotz der Unterbrechung fortgesetzt wird, wenn die Variablei
als äquivalent zu5
bewertet wird. Schauen wir uns unsere Ergebnisse an:
OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Continuing loop
The value of i is 6
The value of i is 7
The value of i is 8
The value of i is 9
Exiting program
Hier sehen wir, dass die ZeileThe value of i is 5
in der Ausgabe nie vorkommt, aber die Schleife wird nach diesem Punkt fortgesetzt, um Zeilen für die Zahlen 6-10 zu drucken, bevor die Schleife verlassen wird.
Sie können die Anweisungcontinue
verwenden, um tief verschachtelten bedingten Code zu vermeiden oder eine Schleife zu optimieren, indem Sie häufig auftretende Fälle eliminieren, die Sie ablehnen möchten.
Die Anweisungcontinue
bewirkt, dass ein Programm bestimmte Faktoren überspringt, die innerhalb einer Schleife auftreten, und dann den Rest der Schleife durchläuft.
Fazit
Mit den Anweisungenbreak
undcontinue
in Go können Siefor
-Schleifen effektiver in Ihrem Code verwenden.