Jawaban:
Istirahat pernyataan, Spesifikasi Bahasa Pemrograman Go.
Pernyataan "break" mengakhiri eksekusi pernyataan "untuk", "switch" atau "pilih" yang paling dalam.
BreakStmt = "break" [ Label ] .Jika ada label, itu harus berupa pernyataan "for", "switch", atau "select" yang terlampir, dan itu adalah orang yang eksekusinya berakhir (§Untuk pernyataan, § Pernyataan dapur, §Pilih pernyataan).
L: for i < n { switch i { case 5: break L } }
Oleh karena itu, breakpernyataan dalam contoh Anda mengakhiri switchpernyataan, pernyataan "paling dalam".
Ya, breakhancurkan batin 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.
Hanya dari blok saklar. Ada banyak contoh dalam kode Golang sendiri yang dapat Anda periksa (bandingkan istirahat dalam dengan istirahat luar ).
ini harus menjelaskannya.
for{
x := 1
switch {
case x >0:
fmt.Println("sjus")
case x == 1:
fmt.Println("GFVjk")
default:
fmt.Println("daslkjh")
}
}
}
Berjalan selamanya
for{
x := 1
switch {
case x >0:
fmt.Println("sjus")
break
case x == 1:
fmt.Println("GFVjk")
default:
fmt.Println("daslkjh")
}
}
}
Sekali lagi, berjalan selamanya
TAPI
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")
}
}
}
akan mencetak sjus ... jelas?
breakdalamselect {}karena hanya satu yangcasebisa dipilih?