Golang中的嵌套分支以及switch语句的用法
- 嵌套分支
- 基本介绍
- 基本语法
- switch
- 基本介绍
- 基本语法
- 流程图
- 使用细节
嵌套分支
基本介绍
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支
基本语法
if 条件表达式{
if 条件表达式{
}else{
}
}
说明:嵌套分支不宜过多,最多建议控制在三层
package main
import "fmt"
func main(){
var i float64
fmt.Println("请输入你的成绩:")
fmt.Scanln(&i)
if i <= 11 {
var j string
fmt.Println("请输入性别:")
fmt.Scanln(&j)
if j == "男" {
fmt.Println("恭喜进入男子组决赛")
} else if j == "女" {
fmt.Println("恭喜进入女子组决赛")
} else {
fmt.Println("您输入的性别不符合要求,请重新输入")
}
} else {
fmt.Println("不好意思,您的成绩不合格,请您下次再来")
}
}
switch
基本介绍
- 1.switch语句用于基于不同条件执行不同动作,每一个case分支都是惟一的,从上到下逐一测试,知道匹配为止
- 2.匹配项后面也不需要再加break
基本语法
switch 表达式 {
case 表达式1,表达式2,....:
语句块1
case 表达式3,表达式4,....:
语句块2
//这里可以有多个case语句
default:
语句块
}
package main
import "fmt"
func main(){
var key byte
fmt.Println("请输入一个字符: a, b, c, d, e, f, g")
fmt.Scanf("%c", &key)
switch key {
case 'a' :
fmt.Println("周一")
case 'b' :
fmt.Println("周二")
case 'c' :
fmt.Println("周三")
case 'd' :
fmt.Println("周四")
case 'e' :
fmt.Println("周五")
case 'f' :
fmt.Println("周六")
case 'g' :
fmt.Println("周日")
default :
fmt.Println("您输入的字符不符合,请你重新输入")
}
}
流程图
说明:
- 1.switch的执行的流程是,先执行表达式,得到值,然后和case的表达式进行比较,如果相等,就匹配到,然后执行对应的case的语句块,然后退出switch控制
- 2.如果switch的表达式的值没有任何的case的表达式匹配成功,则执行default的语句块。执行后退出switch的控制
- 3.golang的case后的表达式可以有多个,使用逗号间隔
- 4.golang中的case语句块不需要写break,因为默认会有,即当程序执行完case语句块后,就直接退出该switch控制结构
使用细节
- 1.case后是一个表达式(即:常量值,变量,一个有返回值的函数等都可以)
- 2.case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致
- 3.case后面可以带多个表达式,使用逗号间隔
- 4.case后面的表达式如果是常量值(字面量),则要求不能要求重复
- 5.case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出switch,如果一个都匹配不到,则执行default
- 6.default语句不是必须的
- 7.switch后也可以不带表达式,类似if–else分支来使用
- 8.switch后也可以直接声明/定义一个变量,分号结束,不推荐