go--条件判断 if、switch
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)
}