go基础-5.判断语句

if语句

以年龄为例,输入的年龄在某一个区间,就输出对应的提示信息

<=0     未出生
1-18    未成年
18-35   青年
>=35    中年

很明显,这是一个多选一的情况

我们有很多中方式来实现

中断式

package main

import "fmt"

func main() {
  fmt.Println("请输入你的年龄:")
  var age int
  fmt.Scan(&age)

  if age <= 0 {
    fmt.Println("未出生")
    return
  }
  if age <= 18 {
    fmt.Println("未成年")
    return
  }
  if age <= 35 {
    fmt.Println("青年")
    return
  }
  fmt.Println("中年")

}

它也有个好听的名字,叫卫语句

嵌套式

package main

import "fmt"

func main() {
  fmt.Println("请输入你的年龄:")
  var age int
  fmt.Scan(&age)

  if age <= 18 {
    if age <= 0 {
      fmt.Println("未出生")
    } else {
      fmt.Println("未成年")
    }
  } else {
    if age <= 35 {
      fmt.Println("青年")
    } else {
      fmt.Println("中年")
    }
  }
}

多条件式

package main

import "fmt"

func main() {
  fmt.Println("请输入你的年龄:")
  var age int
  fmt.Scan(&age)

  if age <= 0 {
    fmt.Println("未出生")
  }
  if age > 0 && age <= 18 {
    fmt.Println("未成年")
  }
  if age > 18 && age <= 35 {
    fmt.Println("青年")
  }
  if age > 35 {
    fmt.Println("中年")
  }
}

switch语句

还是上面那个案例,如果是用switch就很直观了

package main

import "fmt"

func main() {
  fmt.Println("请输入你的年龄:")
  var age int
  fmt.Scan(&age)

  switch {
  case age <= 0:
    fmt.Println("未出生")
  case age <= 18:
    fmt.Println("未成年")
  case age <= 35:
    fmt.Println("青年")
  default:
    fmt.Println("中年")
  }
}

除了这样的写法,还有枚举所有的可能值

例如

1   星期一
2   星期二
3   星期三
package main

import "fmt"

func main() {
  fmt.Println("请输入星期数字:")
  var week int
  fmt.Scan(&week)

  switch week {
  case 1:
    fmt.Println("周一")
  case 2:
    fmt.Println("周二")
  case 3:
    fmt.Println("周三")
  case 4:
    fmt.Println("周四")
  case 5:
    fmt.Println("周五")
  case 6, 7:
    fmt.Println("周末")
  default:
    fmt.Println("错误")
  }
}


可以理解为case的值就是switch的枚举结果

一般来说,go的switch的多选一,满足其中一个结果之后,就结束switch了

例如

package main

import "fmt"

func main() {
  fmt.Println("请输入你的年龄:")
  var age int
  fmt.Scan(&age)

  switch {
  case age <= 0:
    fmt.Println("未出生")
  case age <= 18:
    fmt.Println("未成年")
  case age <= 35:
    fmt.Println("青年")
  default:
    fmt.Println("中年")
  }
}

我输入一个12,我希望它能输出满足的所有条件,例如我希望它输出,未成年,青年

package main

import "fmt"

func main() {
  fmt.Println("请输入你的年龄:")
  var age int
  fmt.Scan(&age)

  switch {
  case age <= 0:
    fmt.Println("未出生")
    fallthrough
  case age <= 18:
    fmt.Println("未成年")
    fallthrough
  case age <= 35:
    fmt.Println("青年")
  default:
    fmt.Println("中年")
  }
}

参考文档

卫语句 什么是卫语句-CSDN博客

switch golang - switch_golang switch-CSDN博客

switch Golang函数的switch语句应用技巧-Golang-PHP中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值