-
weiter mit Beschriftung :
Springen Sie direkt zur nächsten Iteration der äußersten Schleife, die durch die Beschriftung gekennzeichnet ist, und ignorieren Sie dabei den verbleibenden Code der aktuellen Iteration.
-
Beschriftete Pause :
Springen Sie direkt aus der äußersten Schleife, die durch die Beschriftung gekennzeichnet ist, und führen Sie den Code nach der Schleife weiter aus.
-
Das Schlüsselwort goto
goto
kann bedingungslos zur angegebenen Bezeichnung im Programm springen. In diesem Fall können beliebige Beschriftungen verwendet werden, die nicht auf Schleifen beschränkt sind.
Codebeispiel:
weitermachen
rowLoop: // 这是外层循环的标签
for i, row := range array {
// 外层循环
for j, value := range row {
// 内层循环
if value <= threshold {
continue rowLoop
}
fmt.Printf("Found: row %d, col %d\n", i, j)
return
}
}
// 输出:
// Row 0 start
// Row 0, Col 0
// Row 1 start
// Row 1, Col 0
// Row 2 start
// Row 2, Col 0
brechen
rowLoop: // 这是外层循环的标签
for i := 0; i < 3; i++ {
// 外层循环
fmt.Printf("Row %d start\n", i)
for j := 0; j < 3; j++ {
// 内层循环
if j == 1 {
break rowLoop
}
fmt.Printf("Row %d, Col %d\n", i, j)
}
fmt.Printf("Row %d end\n", i)
}
// 输出:
// Row 0 start
// Row 0, Col 0
gehe zu
for i := 0; i < 3; i++ {
// 外层循环
fmt.Printf("Row %d start\n", i)
for j := 0; j < 3; j++ {
// 内层循环
if j == 1 {
goto end
}
fmt.Printf("Row %d, Col %d\n", i, j)
}
fmt.Printf("Row %d end\n", i)
}
end: // 这是goto标签
fmt.Println("Reached end label")
// 输出:
// Row 0 start
// Row 0, Col 0
// Reached end label