开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:switch 基本使用】与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/625/detail/9569
switch 基本使用
内容介绍:
一、基本介绍
二、基本语法
三、Switch 的流程图
四.Switch 快速入门案例
这里继续学习 Golang 中的 Switch 分支结构,Switch 分支结构在很多编程语言中都有,但是 Golang 中的 Switch 分支控制与其他编程语言中的 Switch 有很大差别,下面将展示 Golang 中的 Switch 特点有那些。
一、基本介绍
1、switch 语句用于基于不同条件执行不同动作,就是匹配上表达式后再去执行,每一个 case 分支都是唯一的,从上到下逐一测试,直到匹配为止,如果匹配不到就执行默认的分支。
2、匹配项后面也不需要再加 break,传统编程语言的 switch分支都需要带有break,而 Golang 认为几乎所有的 case 都会带有 break,所以不用再加 break。(不要画蛇添足)
二、基本语法
switch表达式{ //这里表达式意味着返回一个值就可以,在Golang中任何有值的都可以称作表达式。
case 表达式1,表达式2,... :
//case表示switch后表达式等于表达式1或者表达式2的值时,就执行语句块1,这里就可以发现在传统语言中case只能匹配一个表达式,而Golang中是可以匹配多个表达式,执行完后没有break语句仍然进行退出。
语句块1
case 表达式3,表达式4,... :
语句块2
//这里可以有多个 case 语句。
//一个都没有匹配到就执行 default 语句。
default:
语句块
}
通过表达式讲解仍然不够形象,所以下面再通过 switch 的流程图进行讲解。
三、switch的流程图
1、说明
(1)switch 的执行流程是,先执行表达式,得到值,然后和 case 的表达式进行比较,如果相等,就匹配到为 true,然后执行对应的 case 语句块1,执行完后直接结束switch语句,然后继续执行其他的代码,这里注意如果 switch 语句下面还有其他代码是要继续执行的,而不是退出程序。
(2)如果为FALSE, switch 的表达式就与表达式3进行匹配,匹配成功则执行语句块2,匹配不成功就继续与后面表达式进行匹配,一直匹配到结束仍没有表达式匹配成功则执行 default 的语句块。执行后退出 switch 的控制。
2、总结
(1)golang 的 case后的表达式可以有多个,使用逗号间隔。
(2)golang 中的 case 语句块不需要写 break ,因为默认会有,即在默认情况下,当程序执行完 case 语句块后,就直接退出该 switch 控制即可。(不是退出程序,而是退出 switch 控制)
四、Switch 快速入门案例
案例:
请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g,a表示星期一,b表示星期二...根据用户的输入显示相依的信息,要求使用 switch 语句完成。代码如下:
package main
import(
“
fmt
”
)
func main(){
//分析思路
//1.定义一个变量接收字符
//2.使用 switch 完成
var key byte
//定义变量key,使用byte接收字符
fmt.Println(
“
请输入一个字符 a,b,c,d,e,f,g
”
)
//提示信息
fmt.Scanf(
“
%c
”
,&key)
//通过指定格式进行接收%c字符
switch key{
case
‘
a
’
:
fmt.Println
(“周一,猴子穿新衣”) //case进行比较,如果输入等于a,则输出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(
“
输入有误
”
)
//如果一个都没匹配到就输出“输入有误”
}
}
运行结果:D:\goproject\src\go_code\chapter05\switchdemo\demo01>go run main.go
请输入一个字符a,b,c,d,e,f,g
a
周一,猴子穿新衣D:\goproject\src\go_code\chapter05\switchdemo\demo01>go run main.go
请输入一个字符a,b,c,d,e,f,g
b
猴子当小二D:\goproject\src\go_code\chapter05\switchdemo\demo01>go run main.go
请输入一个字符a,b,c,d,e,f,g
p
输入有误...
以上就是 swich 按照常规使用的一个案例,但 switch 只有仅此内容的话是不够,所以后面将进行 switch 的细节讨论。