switch 语句是一个多路分支语句。它提供了一种基于值将执行转移到代码的不同部分的有效方法,也称为表达式的情况。 switch 中可以有各种 switch-case 语句。每个案例后跟要比较的值。当打开的变量等于其对应的 case 时,该 case 后面的语句将执行,直到到达 break 语句。
当遇到break语句时,switch终止,控制流跳转到switch语句后的下一行,不会再执行相同case或loop下的其他后续命令。 switch 语句也可以在最后一个可选的默认情况下给出要执行的默认条件。默认情况可用于在所有情况都不为真时执行任务。让我们举个例子来理解:
代码:
去
// Golang Program to show the Switch
// Case with Break in For Loop
package main
import "fmt"
func main() {
forLoop:for number := 1; number < 10; number++ {
fmt.Printf("%d", number)
switch {
case number == 1:
fmt.Println("-- One")
case number == 2:
fmt.Println("-- Two")
case number == 3:
fmt.Println("-- Three")
case number == 4:
fmt.Println("-- Four")
case number == 5:
fmt.Println("-- Five")
case number == 6:
fmt.Println("-- Six")
case number > 2:
fmt.Println("-- Greater than two")
break forLoop
case number == 8:
fmt.Println("-- Eight")
case number == 9:
fmt.Println("-- Nine")
default:
fmt.Println("-- Number not identified")
}
}
}
输出:
1-- One
2-- Two
3-- Three
4-- Four
5-- Five
6-- Six
7-- Greater than two
说明:在 default case 之前的最后一个 case 中,我们使用了一个 break 语句,用于从forLoop 中断。当数字在循环中从 1 到 9 进行迭代时,它们将使用从顶部开始的 switch 案例进行有条件的测试。例如,当 number = 1 时,它会打印 One 等等。只有在第一个 switch case 条件不满足后,程序才会检查下一个 switch case 条件。数字加 1,一旦循环遇到 7,第一个匹配的 switch case 条件就是“ number > 2 ”。
在这种情况下,我们已经应用了 break 语句,一旦 forLoop 遇到这个语句,它就会中断循环而不执行后面的命令。正如所见,数字 8 永远不会被打印出来,这是因为循环之前有一个 break 语句。我们看到,虽然数字仍然是9并且也有条件,但是它们没有被执行,因为循环在它之前遇到了 break 语句,因此它之后的语句无法执行。
注意: break语句很重要,如果不应用,编译器会抛出“ label forLoop defined and not used”的错误,即使数字在10后停止递增,程序也不会整体执行. 所以,记得谨慎使用break语句。