English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Der for-Loop in der Go-Sprache ist ein wiederkehrendes Kontrollstatement, das uns ermöglicht, Loops mit einer bestimmten Anzahl von Wiederholungen zu schreiben. Der for-Loop in der Go-Sprache kann in verschiedenen Formen verwendet werden, Formen sind:
1. einfacher for-LoopWir verwenden ähnliche in anderen Programmiersprachen (z.B. C, C ++und ähnlich in Java, C#, etc.) verwendet.
Syntax:
for initialization; condition; post{ // Anweisungen.... }
hier,
inInitialisierung(initialization)Anweisungen sind optional und werden vor dem Start des Loops ausgeführt. Die Initialisierungsanweisung befindet sich immer in einfachen Anweisungen, z.B. Variablendeklarationen, Inkrement- oder Zuweisungsanweisungen oder Funktionsaufrufe.
Die Bedingungs(anweisung) enthält einen booleschen Ausdruck, der bei jedem Iterationsbeginn des Loops berechnet wird. Wenn der Wert der Bedingungsanweisung wahr ist, wird der Loop ausgeführt.
post-Anweisung wird nach dem for-Loop-Körper ausgeführt. Nach der post-Anweisung wird der Wert der Bedingungsanweisung erneut berechnet, um zu prüfen, ob er false ist, und der Loop endet.
//Verwendung des for-Loops package main import "fmt" //Hauptfunktion func main() { // for-Loop //Dieser Loop beginnt mit i = 0 und wird fortgesetzt, bis i <4Bedingung ist wahr //post-Anweisung ist i++ for i := 0; i < 4; i++{ fmt.Printf("w3codebox\n") } }
Ausgabe:
w3codebox w3codebox w3codebox w3codebox
2. den for-Loop als unendlichen Loop verwenden:Durch Entfernen aller drei Ausdrücke aus dem for-Loop kann der for-Loop auch als unendlicher Loop verwendet werden. Wenn der Benutzer keine Bedingungsanweisung im for-Loop schreibt, bedeutet dies, dass die Bedingungsanweisung immer wahr ist und der Loop in einen unendlichen Loop übergeht.
Syntax:
for{ // Anweisungen... }
// Verwendung von unendlichen Loops package main import "fmt" func main() { // unendlicher Loop for { fmt.Printf("w3codebox\n") } }
Ausgabe:
w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox ...........
3. der for-Loop als while-Loop verwenden: Der for-Loop kann auch als while-Loop verwendet werden. Führen Sie diesen Loop aus, bis die angegebene Bedingung wahr ist. Wenn der Wert der angegebenen Bedingung false ist, endet der Loop.
Syntax:
for condition{ //Anweisung.. }
//der for-Loop ist gleich dem while-Loop package main import "fmt" func main() { //while-Loop //der for-Loop wird bis zum //i <3Bedingung ist wahr i := 0 for i < 3 { i += 2 } fmt.Println(i) }
Ausgabe:
4
4. einfache range im for-Loop:Sie können auchim for-LoopVerwendung von range
Syntax:
for i, j := range rvariable { // Anweisung.. }
hier,
i und j sind Variablen zur Zuweisung von Iterationswerten. Sie werden auch als Iterationsvariablen bezeichnet.
Die zweite Variable, also j, ist optional.
Der Ausdrucksbereich wird einmal vor dem Start des Loops bewertet.
package main import "fmt" func main() { //hier ist rvariable ein Array rvariable := []string{"GFG", "Geeks", "w}3codebox"} //codebox"} //i und j speichern den Wert von rvariable //i speichert die Indexnummer des einzelnen Strings j speichert den einzelnen String des gegebenen Arrays for i, j:= range rvariable { } }
Ausgabe:
fmt.Println(i, j) 1 Geeks 2 w3codebox
50 GFG . Für Strings wird der for-Schleifenaufruf verwendet:
Syntax:
Der for-Schleifenaufruf kann durchlaufende Unicode-Codepunkte des Strings durchlaufen. // Anweisung.. }
for index, chr:= range str{-8hier, der Index ist der Speicherort von UTFchr die Variable des ersten Bytes des codierten Codepunkts ist, währendspeichert die Variablen der Zeichen des gegebenen Strings, währendstrist ein String.
package main import "fmt" func main() { // Der String als Bereich des for-Schleifens for i, j := range "XabCd" { fmt.Printf("%U der Indexwert ist %d\n", j, i) } }
Ausgabe:
U+0058 der Indexwert ist 0 U+0061 der Indexwert ist 1 U+0062 der Indexwert ist 2 U+0043 der Indexwert ist 3 U+0064 der Indexwert ist 4
6. Für Map wird der for-Schleifenaufruf verwendet: Der for-Schleifenaufruf kann durchlaufende Wertemapder Schlüssel-Wert-Paare.
Syntax:
for key, value := range map { // Anweisung.. }
package main import "fmt" func main() { 22 33: "GFG", 44: "w3codebox", } for key, value := range mmap { fmt.Println(key, value) } }
Ausgabe:
22 Geeks 33 GFG 44 w3codebox
7. Für Kanäle: Der for-Schleifenaufruf kann durchlaufende Werte auf dem Kanal bis zum Schließen durchlaufen.
Syntax:
for item := range Chnl { // Anweisung.. }
package main import "fmt" func main() { // Verwendung von channel chnl := make(chan int) go func() { chnl <- 100 chnl <- 1000 chnl <- 10000 chnl <- 100000 close(chnl) }() for i := range chnl { fmt.Println(i) } }
Ausgabe:
100 1000 10000 100000
Wichtig:
In den drei Anweisungen des for-Schleifens werden keine Klammern verwendet.
Schwarze Klammern sind im for-Schleifenaufruf obligatorisch.
Die rechte Klammer sollte mit der Zeile übereinstimmen, in der sich der post-Anweisung befindet.
Wenn ein Array, String, Slice oder Map-Satz leer ist, wirft der for-Schleifenaufruf keinen Fehler aus und fortsetzt seinen Ablauf. Mit anderen Worten, wenn ein Array, String, Slice oder Map nil ist, beträgt die Anzahl der Iterationen des for-Schleifendurchlaufs null.