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("中年")
  }
}

参考文档

卫语句 https://blog.csdn.net/wangpaiblog/article/details/114909737

switch https://blog.csdn.net/qq_43470538/article/details/130436381

switch https://www.php.cn/faq/540744.html

posted @ 2024-09-24 11:04  枫枫知道  阅读(3)  评论(0编辑  收藏  举报