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, break
pernyataan dalam contoh Anda mengakhiri switch
pernyataan, pernyataan "paling dalam".
Ya, break
hancurkan 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?
break
dalamselect {}
karena hanya satu yangcase
bisa dipilih?