【Golang系列】-流程控制
2022-03-07
流程控制
if语句
根据给定的条件表达式运算结果来,判断执行流程
语法:
if 布尔表达式 {
在布尔表达式为ture时执行
}
初始变量可以声明再布尔表达式里面注意作用域
package main
func main() {
if age := 16; age >= 18 {
println("你成年了")
} else {
println("你再多吃几年饭")
}
}
注意:不能使用0或非0来表示真假
使用提示:
不需要使用括号将条件包含起来
大括号{}必须存在,即使一行语句
左括号必须在if 或 else的同一行
在if之后,条件语句之前,可以添加变量初始化语句 使用;进行分隔
if嵌套
package main
import "fmt"
func f2() {
gread := "女"
age := 15
if gread == "男" {
if age >= 18 {
fmt.Println("成年男")
} else {
fmt.Println("未成年男")
}
} else {
if age >= 18 {
fmt.Println("成年女")
} else {
fmt.Println("未成年女")
}
}
}
func main() {
f2()
}
switch语句
语法:
switch var1 {
case varl:
...
case var2:
...
default:
...
}
示例
package main
import "fmt"
func f2() {
grade := "C"
switch grade {
case "A":
fmt.Println("优秀")
case "B":
fmt.Println("良好")
case "C":
fmt.Println("可以")
default:
fmt.Println("不及格")
}
}
func main() {
f2()
}
多条件匹配
可以同时匹配多个条件,中间用,分隔,有一个匹配成功即可
package main
import "fmt"
func f2() {
day := 4
switch day {
case 1, 2, 3, 4, 5:
fmt.Println("工作日")
case 6,7
fmt.Println("休息日")
default:
fmt.Println("非法参数")
}
}
func main() {
f2()
}
case 可以是条件表达式
case fallthrouht
package main
import "fmt"
func f2() {
a := 100
switch a {
case 100:
fmt.Println("100")
fallthrough
case 200:
fmt.Println("200")
case 300:
fmt.Println("300")
}
}
func main() {
f2()
}
结果:
[Running] go run "/Users/lihui/Desktop/gocode/src/chapter04/dome06.go"
100
200
[Done] exited with code=0 in 0.57 seconds
注意事项:
支持多条件匹配
不同case之间不使用break分隔 默认只执行一个case
如果想要执行多个case 需要使用fallthroght关键字,也可以是break终止
分支可以使用表达式:a>10