golang流程控制
go语言中的流程控制有两种实现方式,分别是if 和switch语句,switch语句类似于if 语句的多分支。
if语句
if语言需要接一个表达式且,运算的结果只能bool类型的
func main() { if 0==0 { fmt.Println(3) } }
if语句的其他写法
这种在if后面先添加了一个赋值的操作,在去运算的,a的作用域,只在当前if中生效。
func main() { if a := 1; a == 1 { fmt.Println(6) } }
if语句多分支方式
使用 else if 可以多分支的判断条件,但是只能有一个分支执行。
func main() { a := 100 if a == 1 { fmt.Println(1) } else if a == 2 { fmt.Println(2) } else { fmt.Println(3) } }
switch语句
func main() { a := 1 switch { case a == 1: fmt.Println(1) case a == 2: fmt.Println(2) case a == 3: fmt.Println(3) } }
也可以写成下面显示
func main() {
a := 1
switch a {
case 1:
fmt.Println(1)
case 2:
fmt.Println(2)
case 3:
fmt.Println(3)
}
}
switch中的default语句,
default语句是switch语句的一个默认执行的分支,也就是说所有的case都不成立,那么就执行default
func main() { a := 100 switch a { case 1: fmt.Println(1) case 2: fmt.Println(2) case 3: fmt.Println(3) default: fmt.Println(0) } }
switch的其他写法
当switch没有条件的时候,默认当case的值为true的分支,执行
func main() { switch { case true: fmt.Println(1) case false: fmt.Println(2) } }
switch穿透
fallthrough关键字用来在switch语句中,穿透case分支用的,fallthrough会直接穿透到下一个case分支执行。
func main() { a := 1 switch { case a == 1: fmt.Println(1) fallthrough case a == 2: fmt.Println(2) } }
Welcome to visit