Golang 的 switch 语句以 switch 关键字开头,后跟表达式,然后是 case。当处理许多条件时,使用 Else If 语句会很繁琐。在这种情况下,我们可以使用此 switch 语句并编写任意数量的 case。
在 switch 语句中,每个 case 表达式都与表达式进行比较,如果为 True,则执行 case 块。如果所有 case_expressions 都失败,则执行 default 代码块。其语法为:
switch switch_expression {
case case_expression1: statement 1
case case_expression2: statement 2
……
case case_expressionN: statement N
default: default statement
}
与 else if 语句类似,GC 编译器会从上到下检查 case。如果任何 case 表达式的结果为 true,它将执行该块,而不会继续向下执行。
Golang Switch Case 示例
此程序允许用户输入 0 到 6 之间的任何正数,其中 0 表示星期日,6 表示星期六。接下来,我们使用 case 根据值打印输出。
package main
import "fmt"
func main() {
fmt.Print("Please enter value from 0 to 6 = ")
var num int
fmt.Scanf("%d", &num)
fmt.Println(num)
switch num {
case 0:
fmt.Println("Sunday")
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
default:
fmt.Println("Please enter valid Number")
}
}

switch case 不需要操作数或值来与 case 表达式进行比较。因为在 case 中,我们可以编写一个语言表达式。这在 Go 编程中被称为无标签 case(tagless case)。
package main
import "fmt"
func main() {
fmt.Print("Please enter any Number = ")
var num int
fmt.Scanf("%d", &num)
fmt.Println(num)
switch {
case num > 0:
fmt.Println("Positive Number")
case num < 0:
fmt.Println("Negative Number")
case num == 0:
fmt.Println("Zero")
default:
fmt.Println("Enter a Valid Number")
}
}
