You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言switch case分支执行顺序是什么?多true分支输出解析

Go无表达式switch的执行规则说明

这段代码的输出是1。

Go语言中不带条件表达式的switch(即switch {})执行规则非常明确:

  • 从上到下依次检查每个case的条件表达式
  • 一旦匹配到第一个结果为true的case,就执行该分支的代码,执行完成后直接退出整个switch结构,后续case不会被检查或执行
  • 不存在“伪随机选取表达式”的情况,执行逻辑是完全确定的,严格遵循从上到下的顺序

你在Go Playground的测试结果是正确的:第一个case true条件成立,执行fmt.Println(1)后就跳出switch,第二个case不会被触发。

如果需要让多个case分支依次执行,可以显式使用fallthrough关键字,示例如下:

switch {
case true:
 fmt.Println(1)
 fallthrough
case true:
 fmt.Println(2)
}

这段代码会依次输出1和2。

内容的提问来源于stack exchange,提问作者Nikita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:22:09