条件语句: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 显式声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值