go - 5.1 流程控制
1. 顺序控制
自上而下执行代码
2.1 分支控制(if-else if-else)
1. 示例 package main import "fmt" // func main(){ // a := -4>>2 // fmt.Println(a) // } func main(){ var age int fmt.Println("请输入年龄:") fmt.Scanln(&age) if age > 18 { fmt.Println("你的年龄大于18") } else if age < 12 { fmt.Println("你的年龄小于12") } else { fmt.Println("年龄介于12和18之间") } }
2.2 switch分支控制
一. 注意事项
1. switch语句用于基于不同条件执行不同动作,每一个case分支都是唯一的,从上到下逐一测试,直到匹配位置 2. 表达式 switch 表达式{ case 表达式1,表达式2,...: 语句块 case 表达式3: 语句块2 default: 语句块3 } 3. switch的执行流程是,先执行表达式,得到值,然后和case的表达式进行比较,如果相等,就执行语句块。所有的表达式都没有匹配的话,就退出switch控制 4. 如果switch的表达式的值没有任何的case,则执行default语句块 5. case的后面可以有多个表达式,用逗号隔开 6. go的case中默认有break,不需要自己写
二. 使用细节
1. switch/case后面是一个表达式,可以是常量,变量,一个有返回值的函数等
2. case后的各个表达式的值得数据类型,必须和switch的表达式数据类型一致
3. case后面可以带多个表达式,用逗号隔开,switch后面可以不跟表达式
4. case后面的表达式如果是常量值,则要求不能重复
5. default语句块不是必须的
6. switch 穿透,如果在case语句块后增加fallthrough,则会继续执行下一个case,不管下一个case是否能够匹配
7. Type Switch 语句还可以被用于teype-switch来判断某个interface变量中实际执行的变量类型