English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang Grundlagen教程

Golang Kontrollanweisungen

Golang Funktion & Methode

Golang Struktur

Golang Slice & Array

Golang Zeichenkette (String)

Golang Zeiger

Golang Schnittstelle

Golang Parallelität

Golang Ausnahme (Error)

Golang andere Artikel

Go-Sprache Loop-Statement (for-Loop)

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.