3.4 Switch分支
在 GoLand(其实是 JetBrains 开发的 Go 编程语言 IDE)中,switch
是 Go 语言(Golang) 的一个重要控制结构,用于替代多个 if-else
语句。
✅ 特点说明
特性 | 说明 |
---|---|
自动 break |
Go 的 switch 语句默认每个 case 执行完会自动跳出(无需写 break ) |
支持多个匹配值 | 可以在一个 case 中写多个值,用逗号分隔 |
支持表达式 | switch 和 case 都可以是表达式 |
支持 switch 省略表达式(等价于 switch true ) |
✅ 基本语法
switch 表达式 {
case 值1:
语句块1
case 值2:
语句块2
default:
默认语句块
}
🔹 示例一:基本用法
package main
import "fmt"
func main() {
color := "red"
switch color {
case "red":
fmt.Println("红色")
case "blue":
fmt.Println("蓝色")
default:
fmt.Println("未知颜色")
}
}
🔸 输出
🔹 示例二:多个匹配值
package main
import "fmt"
func main() {
number := 3
switch number {
case 1, 3, 5:
fmt.Println("奇数")
case 2, 4, 6:
fmt.Println("偶数")
}
}
🔸 输出
🔹 示例三:省略 switch
表达式(更像 if-else)
package main
import "fmt"
func main() {
age := 20
switch {
case age < 18:
fmt.Println("未成年人")
case age >= 18 && age < 60:
fmt.Println("成年人")
default:
fmt.Println("老年人")
}
}
🔸 输出
示例四:使用 fallthrough
强制执行下一个 case(不常用)
package main
import "fmt"
func main() {
num := 1
switch num {
case 1:
fmt.Println("一")
fallthrough
case 2:
fmt.Println("二")
fallthrough
case 3:
fmt.Println("三")
}
}
🔸 输出
✅ 小结
功能 | 说明 |
---|---|
自动 break | 不像 Java/C,需要手动 break |
可省略表达式 | 支持 switch true {} |
支持多个值 | case 1, 2, 3: |
fallthrough |
手动执行下一个 case |