Heim > Backend-Entwicklung > Golang > Was sind die Sprunganweisungen in der Go-Sprache?

Was sind die Sprunganweisungen in der Go-Sprache?

青灯夜游
Freigeben: 2022-12-26 17:51:03
Original
4683 Leute haben es durchsucht

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;“.

Was sind die Sprunganweisungen in der Go-Sprache?

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)
    }
}
Nach dem Login kopieren

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)
    }
}
Nach dem Login kopieren

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)
    }
}
Nach dem Login kopieren

这样一来,原本退出当前循环体的 break 语句现在改为跳转到 ITERATOR1 标签对应的位置,所以对应的打印结果是:

1
2
Nach dem Login kopieren

因为此时 break 会直接跳出外层循环,如果把 break 改成 continue 则打印结果如下:

1
2
4
5
7
8
Nach dem Login kopieren

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.")
Nach dem Login kopieren

当第一次满足 j > 1 的条件时,代码就会跳转到 EXIT

1
2
Exit.
Nach dem Login kopieren
Auf diese Weise springt die Break-Anweisung, die ursprünglich den aktuellen Schleifenkörper verlassen hat, nun an die Position, die dem ITERATOR1-Label entspricht, sodass das entsprechende Druckergebnis lautet:

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage