go--条件判断 if、switch

发布时间 2023-11-23 21:05:44作者: 邹邹很busy。

if

基本语法

if 条件A{
    ...
}else if 条件B{
    ...
}else if 条件C{
    ...
}else{
    ...
}

例子

package main

import "fmt"

func main() {
   var fruit string = "6 个苹果"
   var watermelon bool = false
   if watermelon { // watermelon 为 true 时,执行里面的代码,可以不写 else
      fruit = "1 个苹果"
   }
   fmt.Printf(fruit)
}

例子:用户输入姓名,判断是否正确

package main

import "fmt"

func main() {
   var name string
   fmt.Print("请输入姓名:")
   fmt.Scanln(&name)
   if name == "zouzou" {
      // 正确时执行
      fmt.Println("用户名输入正确")
   } else {
      //错误时执行
      fmt.Println("用户名输入错误")
   }

}

例子:用户输入数字,判断奇数、偶数

package main

import "fmt"

func main() {
   var number int
   fmt.Print("请输入数字:")
   fmt.Scanln(&number)
   if number%2 == 0 { // 取余数
      fmt.Println("您输入的是偶数")
   } else {
      fmt.Println("您输入的是奇数")
   }

}

例子:用户输入用户名和密码,判断用户名密码是否正确

package main

import "fmt"

func main() {
   var username, password string
   fmt.Print("请输入用户名:")
   fmt.Scanln(&username)

   fmt.Print("请输入密码:")
   fmt.Scanln(&password)

   if username == "zouzou" && password == "admin" {
      //  && 表示并且的意思,|| 表示或者的意思
      fmt.Println("欢迎登录")
   } else {
      fmt.Println("用户名或密码错误")
   }

}

if ...else if...else

package main

import "fmt"

func main() {
   var rmb int
   rmb = 188

   if rmb <= 20 {
      // 如果不超过20,点个外卖
      fmt.Println("点个外卖")
   } else if rmb <= 200 {
      //如果不超过200,下个馆子
      fmt.Println("下个馆子")

   } else if rmb <= 2000 {
      //如果不超过2000,去米其林
      fmt.Println("去米其林")

   } else if rmb <= 20000 {
      // 如果不超过 20000,去新马泰
      fmt.Println("去新马泰")

   } else {
      //如果在多,容我想想
      fmt.Println("钱太多了,容我想想")
   }
}

switch

switch 语句用于基于不同条件执行不同的动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止

在 go 中,默认是有 break 的,不需要加 break。如果想去掉 break,继续往下执行的话,需要加上 fallthrough

package main

import "fmt"

func main() {
   var rmb int
   rmb = 20000
   switch rmb { //会判断 rmb 的值,为多少的时候,执行 case 后面对应的代码
   case 20: // rmb 为 20 的时候,执行这个case下面的
      fmt.Println("点个外卖")
   case 200:
      fmt.Println("下个馆子")
   case 2000: // rmb 为 2000 的时候,执行这个case下面的
      fmt.Println("去米其林")
   case 20000:
      fmt.Println("去新马泰")
   default: // 都不满足的时候,会走这个
      fmt.Println("容我想想")
   }

}

注意:case 后面可以跟多个值,中间用 , 隔开

例如

package main

import "fmt"

func main() {
   var rmb int
   rmb = 20000
   switch rmb { 
   case 20: 
      fmt.Println("点个外卖")
   case 200, 300: // 多个条件,中间用 ,隔开
      fmt.Println("下个馆子")
   case 2000: 
      fmt.Println("去米其林")
   case 20000:
      fmt.Println("去新马泰")
   default: 
      fmt.Println("容我想想")
   }

}

case 后面也可以用区间

把条件写在 case 后面就可以了

package main

import "fmt"

func main() {
   scope := 66
   grade := ""
   switch { // 条件可以不放在 switch 里面
   case scope >= 90: // 条件放在 case 后面
      grade = "A"
   case scope >= 80 && scope <= 89:
      grade = "B"
   case scope >= 70 && scope <= 79:
      grade = "C"
   case scope >= 60 && scope <= 69:
      grade = "D"
   default:
      grade = "E"
   }
   fmt.Println(grade)
}