Jump-Anweisungen umfassen: 1. break-Anweisung, die zum Beenden einer Schleife oder einer switch-Anweisung verwendet wird und es dem Programm ermöglicht, den Code nach der Schleife weiter auszuführen. Die Syntax lautet „break;“; 2. continue-Anweisung, die zum Beenden verwendet wird Diese Schleife und start Für den nächsten Zyklus lautet die Syntax „continue;“; 3. In Kombination mit der Beschriftung, um zur angegebenen Beschriftungsanweisung zu springen, lautet die Syntax „label +:“ 4. Die goto-Anweisung wird für die bedingungslose Übertragung verwendet Zur angegebenen Zeile im Programm lautet die Syntax „goto tag;... ...tag:expression;“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Jump-Anweisung in der Go-Flusskontrolle
break- und continue-Anweisung
Wie andere Programmiersprachen unterstützt die Go-Sprache das Ausbrechen aus der Schleife durch die break-Anweisung in der Loop-Anweisung und den Eintritt in die nächste Schleife durch die continue-Anweisung.
Wir haben die grundlegenden Verwendungsbeispiele von break bereits im vorherigen Tutorial demonstriert. Der Standardbereich von break ist der innerste Schleifenkörper, in dem sich die Anweisung befindet:
arr := [][]int{{1,2,3},{4,5,6},{7,8,9}} for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { num := arr[i][j] if j > 1 { break } fmt.Println(num) } }
Die Bedeutung von break ist hier beispielsweise, wenn j > Verlassen Sie die innerste Schleife, andernfalls geben Sie die Zahl an der aktuellen Position aus.
continue wird verwendet, um den verbleibenden Schleifenkörper zu ignorieren und direkt in den nächsten Schleifenprozess einzutreten:
arr := [][]int{{1,2,3},{4,5,6},{7,8,9}} for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { num := arr[i][j] if j > 1 { break } else { continue } fmt.Println(num) } }
Wenn wir das Programm so umschreiben, gibt der obige Code keinen Wert aus, da die continue-Anweisung den nachfolgenden Code ignoriert und direkt Betreten Sie die nächste Schleife.
Label
Der Unterschied zwischen Go language break and continue und anderen Sprachen besteht darin, dass es die Kombination mit Labels unterstützt, um zur angegebenen Label-Anweisung zu springen, wodurch die Standardsprunglogik dieser beiden Anweisungen geändert wird. Die Label-Anweisung wird übergeben Tag+:
deklariert: 标签 + :
进行声明:
arr := [][]int{{1,2,3},{4,5,6},{7,8,9}} ITERATOR1: for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { num := arr[i][j] if j > 1 { break ITERATOR1 } fmt.Println(num) } }
这样一来,原本退出当前循环体的 break 语句现在改为跳转到 ITERATOR1 标签对应的位置,所以对应的打印结果是:
1 2
因为此时 break 会直接跳出外层循环,如果把 break 改成 continue 则打印结果如下:
1 2 4 5 7 8
goto 语句
goto 语句被多数语言学者所反对,告诫大家不要使用,因为很容易造成代码逻辑混乱,进而导致不易发现的 bug。但 Go 语言仍然支持 goto 关键字,goto 语句的语义非常简单,就是跳转到本函数内的某个标签,如:
arr := [][]int{{1,2,3},{4,5,6},{7,8,9}} for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { num := arr[i][j] if j > 1 { goto EXIT } fmt.Println(num) } } EXIT: fmt.Println("Exit.")
当第一次满足 j > 1
的条件时,代码就会跳转到 EXIT
1 2 Exit.
rrreeeWeil Wenn break direkt aus der äußeren Schleife springt und break in continue geändert wird, lautet das gedruckte Ergebnis wie folgt: rrreeegoto-Anweisung
🎜🎜goto-Anweisung wird von den meisten Sprachwissenschaftlern abgelehnt und warnt alle davor, sie zu verwenden Dies liegt daran, dass es leicht zu Verwirrung in der Codelogik führen kann, was wiederum zu schwer zu findenden Fehlern führt. Die Go-Sprache unterstützt jedoch weiterhin das Schlüsselwort goto. Die Semantik der goto-Anweisung besteht darin, zu einer bestimmten Bezeichnung innerhalb dieser Funktion zu springen, z. B.: 🎜rrreee🎜When j > > ist zum ersten Mal erfüllt. Wenn die Bedingung erfüllt ist, springt der Code zu der durch das <code>EXIT
-Tag angegebenen Position und setzt die nachfolgende Codeausführung fort. Die Ausgabe des obigen Codes lautet also: 🎜rrreee🎜 [Verwandte Empfehlungen: 🎜Go-Video-Tutorial🎜, 🎜Programmierunterricht 🎜】🎜Das obige ist der detaillierte Inhalt vonWas sind die Sprunganweisungen in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!