जवाबों:
ब्रेक स्टेटमेंट्स, द गो प्रोग्रामिंग लैंग्वेज स्पेसिफिकेशन।
एक "ब्रेक" स्टेटमेंट "," स्विच "या" सिलेक्ट "स्टेटमेंट के लिए इनमोस्टर" के निष्पादन को समाप्त करता है।
BreakStmt = "break" [ Label ] .
यदि कोई लेबल है, तो यह "के लिए", "स्विच" या "चयन" कथन के साथ संलग्न होना चाहिए, और वह वह है जिसका निष्पादन समाप्त हो गया है (statementsFor कथन, itchSwitch कथन, lectSelect कथन)।
L: for i < n { switch i { case 5: break L } }
इसलिए, break
आपके उदाहरण में switch
दिए गए बयान, "अंतरतम" कथन को समाप्त करता है ।
हां, break
भीतर को तोड़ता है 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.
बस एक स्विच ब्लॉक से। गोलंग के स्वयं के कोड में बहुत सारे उदाहरण हैं जिनकी आप जांच कर सकते हैं ( बाहरी ब्रेक के साथ आंतरिक ब्रेक की तुलना करें )।
इसे समझाना चाहिए।
for{
x := 1
switch {
case x >0:
fmt.Println("sjus")
case x == 1:
fmt.Println("GFVjk")
default:
fmt.Println("daslkjh")
}
}
}
हमेशा के लिए भागता है
for{
x := 1
switch {
case x >0:
fmt.Println("sjus")
break
case x == 1:
fmt.Println("GFVjk")
default:
fmt.Println("daslkjh")
}
}
}
फिर, हमेशा के लिए चलता है
परंतु
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")
}
}
}
sjus प्रिंट करेंगे ... स्पष्ट?
break
केselect {}
बाद से भीतर का उपयोग मामला क्या हैcase
?