GoLang教程005:switch分支

3.4 Switch分支

GoLand (其实是 JetBrains 开发的 Go 编程语言 IDE)中,switchGo 语言(Golang) 的一个重要控制结构,用于替代多个 if-else 语句。

✅ 特点说明

特性 说明
自动 break Go 的 switch 语句默认每个 case 执行完会自动跳出(无需写 break
支持多个匹配值 可以在一个 case 中写多个值,用逗号分隔
支持表达式 switchcase 都可以是表达式
支持 switch 省略表达式(等价于 switch true

✅ 基本语法

go 复制代码
switch 表达式 {
case 值1:
    语句块1
case 值2:
    语句块2
default:
    默认语句块
}

🔹 示例一:基本用法

go 复制代码
package main

import "fmt"

func main() {
	color := "red"

	switch color {
	case "red":
		fmt.Println("红色")
	case "blue":
		fmt.Println("蓝色")
	default:
		fmt.Println("未知颜色")
	}
}

🔸 输出

🔹 示例二:多个匹配值

go 复制代码
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)

go 复制代码
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(不常用)

go 复制代码
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
相关推荐
葫芦和十三3 小时前
图解 MongoDB 09|explain 再读:从 queryPlanner 到 executionStats
后端·mongodb·agent
葫芦和十三3 小时前
图解 MongoDB 10|覆盖查询:让索引把活干完,根本不用回表
后端·mongodb·agent
大鸡腿同学5 小时前
从 CoT 思维链到 ReAct:智能 Agent 到底是怎么 “思考” 的?
后端
IT_陈寒7 小时前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
SamDeepThinking7 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
Asize8 小时前
多模态生图:从 Vite 工程化到前端调用 Qwen Image
javascript·人工智能·后端
java小白小8 小时前
SpringBoot(09):缓存实战——穿透、雪崩、击穿的解决方案
后端
java小白小8 小时前
SpringBoot(08):Redis 集成——5 分钟给你的项目加上缓存
后端
LiuMingXin8 小时前
意图与代码之间:AI编程范式全景解读
前端·后端·面试
用户34232323763179 小时前
边缘计算与云边协同——当采集不再只是“上传“
后端