欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 条件语句:if 与 switch -《Go语言实战指南》

条件语句:if 与 switch -《Go语言实战指南》

2025/5/16 5:58:49 来源:https://blog.csdn.net/tenkofx/article/details/147868274  浏览:    关键词:条件语句:if 与 switch -《Go语言实战指南》

在程序中,我们常常需要依据不同的条件执行不同的代码逻辑。Go 提供了两种主要的条件语句:if 和 switch,结构清晰、功能强大。


一、if 语句

1. 基本语法
if 条件表达式 {// 条件为 true 时执行的代码
}
2. 带 else 的写法
if x > 10 {fmt.Println("x 大于 10")
} else {fmt.Println("x 小于或等于 10")
}
3. 多分支:else if
if x > 100 {fmt.Println("x > 100")
} else if x > 50 {fmt.Println("50 < x <= 100")
} else {fmt.Println("x <= 50")
}
4. 支持初始化语句
if y := getValue(); y > 10 {fmt.Println("y 大于 10")
}

y 仅在 if 语句的作用域内可用。


二、switch 语句

1. 基本语法
switch 变量 {
case 值1:// 执行代码1
case 值2:// 执行代码2
default:// 所有 case 不匹配时执行
}
示例:
day := "Monday"
switch day {
case "Monday":fmt.Println("今天是周一")
case "Friday":fmt.Println("今天是周五")
default:fmt.Println("不是周一也不是周五")
}
2. 一个 case 匹配多个值
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:fmt.Println("周末休息")
default:fmt.Println("工作日")
}
3. 不加表达式,使用逻辑判断
score := 85
switch {
case score >= 90:fmt.Println("优秀")
case score >= 60:fmt.Println("及格")
default:fmt.Println("不及格")
}
4. 支持 fallthrough 强制进入下一分支(默认不会自动贯穿)
i := 2
switch i {
case 1:fmt.Println("One")fallthrough
case 2:fmt.Println("Two") // 会被执行
}

三、if 与 switch 的选择建议

情况推荐语句
单一条件判断if
多条件、枚举类型匹配switch
多值匹配或逻辑清晰分支switch
简单判断+临时变量声明if(带初始化)

四、小结

  • • if 更灵活、适合少量条件;
  • • switch 更结构化,适合多分支判断;
  • • 支持在条件语句中声明局部变量;
  • • switch 默认不贯穿,用 fallthrough 显式声明。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词