Odpowiedzi:
Instrukcje Break, specyfikacja języka programowania Go.
Instrukcja „break” kończy wykonywanie najbardziej wewnętrznej instrukcji „for”, „switch” lub „select”.
BreakStmt = "break" [ Label ] .
Jeśli istnieje etykieta, musi to być ta zawierająca instrukcję „for”, „switch” lub „select”, a jest to ta, której wykonanie się kończy (instrukcje §Dla instrukcji, instrukcji przełączania, instrukcji wyboru).
L: for i < n { switch i { case 5: break L } }
Dlatego break
instrukcja w przykładzie kończy switch
instrukcję, czyli instrukcję „najbardziej wewnętrzną”.
Tak, break
łamie wnętrze switch
.
https://play.golang.org/p/SZdDuVjic4
package main
import "fmt"
func main() {
myloop:for x := 0; x < 7; x++ {
fmt.Printf("%d", x)
switch {
case x == 1:
fmt.Println("start")
case x == 5:
fmt.Println("stop")
break myloop
case x > 2:
fmt.Println("crunching..")
break
default:
fmt.Println("idling..")
}
}
}
0idling.. 1start 2idling.. 3crunching.. 4crunching.. 5stop Program exited.
Tylko z bloku przełączników. Istnieje wiele przykładów we własnym kodzie Golanga, które możesz zbadać (porównaj przerwanie wewnętrzne z przerwaniem zewnętrznym ).
to powinno to wyjaśnić.
for{
x := 1
switch {
case x >0:
fmt.Println("sjus")
case x == 1:
fmt.Println("GFVjk")
default:
fmt.Println("daslkjh")
}
}
}
Działa wiecznie
for{
x := 1
switch {
case x >0:
fmt.Println("sjus")
break
case x == 1:
fmt.Println("GFVjk")
default:
fmt.Println("daslkjh")
}
}
}
Znowu działa wiecznie
ALE
package main
import "fmt"
func main() {
d:
for{
x := 1
switch {
case x >0:
fmt.Println("sjus")
break d
case x == 1:
fmt.Println("GFVjk")
default:
fmt.Println("daslkjh")
}
}
}
wypisze sjus ... wyczyść?
break
wewnątrz,select {}
skorocase
można wybrać tylko jeden ?