switch分支语句
packagemainimport"fmt"funcmain(){/*
switch语句:
语法结构:
switch 变量名{
case 数值1:分支1
case 数值2:分支2
case 数值3:分支3
、、、
default:
最后一个分支
}
注意事项:
1.switch可以作用在其他类型上,case后的数值必须和switch作用的变量类型一致
2.case是无序的
3.case后的数值是唯一的(duplicate case 3 in switch)
4.deault的语句是可选的操作
*/
num :=3
switch num{
case1:
fmt.Println("第一")
case2:
fmt.Println("第二")
case3:
fmt.Println("第三")
case4:
fmt.Println("第四")
default:
fmt.Println("数据有误。。。")
}
//模拟计算器
num1 :=0
num2 :=0
oper :=""
fmt.Println("请输入一个整数:")
fmt.Scanln(&num1)
fmt.Println("请再次输入一个整数:")
fmt.Scanln(&num2)
fmt.Println("请输入一个操作:+,-,*,/")
fmt.Scanln(&oper)
switch oper{
case"+":
fmt.Printf("%d + %d = %d\n",num1,num2,num1+num2)
case"-":
fmt.Printf("%d - %d = %d\n",num1,num2,num1-num2)
case"*":
fmt.Printf("%d * %d = %d\n",num1,num2,num1*num2)
case"/":
fmt.Printf("%d / %d = %d\n",num1,num2,num1/num2) } }
运行输出:
第三
请输入一个整数:50
请再次输入一个整数:35
请输入一个操作:+,-,*,/
-
50-35=15
Processfinishedwithexitcode0
switch其他用法
packagemainimport"fmt"funcmain(){/*
1.switch的标准写法:
switch 变量{
case 数值1:分支1
case 数值2:分支2
...
default:
最后一个分支
}
2.省略switch后的变量,相当于直接作用在true上
switch{//true
case true:
case false:
}
3.case后可以同时跟随多个数值
switch 变量{
case 数值1,数值2,数值3:
case 数值5,数值6:
}
4.switch后可以多一条初始化语句
switch 初始化语句;变量{
}
*/
switch{
case true:
fmt.Println("true...")
case false:
fmt.Println("false...") }
/*
成绩:
[0-59],不及格
[60-69],及格
[70-79],中
[80-89],良好
[90-100],优秀
*/
score :=88
switch{
case score >=0&& score <60:
fmt.Println("不及格")
case score >=60&& score <70:
fmt.Println("及格")
case score >=70&& score <80:
fmt.Println("中")
case score >=80&& score <90:
fmt.Println("良好")
case score >=90&& score <=100:
fmt.Println("优秀")
default:
fmt.Println("成绩有误")
}
fmt.Println("__________________________")
letter :="A"
switch letter{
case"A","E","I","O","U":
fmt.Println(letter,"是元音")
case"M","N":
fmt.Println("M或N")
default:
fmt.Println("其他")
}
fmt.Println("判断N年N月是几天")
/*
31天数月份
1,3,5,7,8,10,12
30天数月份
4,6,9,11
特殊2月:28/29
*/
year :=0
fmt.Println("请输入年份:")
fmt.Scanln(&year)
month :=0
fmt.Println("请输入月份:")
fmt.Scanln(&month)
days :=0
switch month{
case1,3,5,7,8,10,12:
days =31
case4,6,9,11:
days =30
case2:
if year %400==0|| year %4==0&& year %100!=0{
days =29
}else{
days =28
}
default:
fmt.Println("月份错误")
}
fmt.Printf("%d 年 %d 月 的天数是:%d \n",year,month,days)
//4
switch language :="golang";language{
case"golang":
fmt.Println("Go语言")
case"java":
fmt.Println("JAVA语言")
case"python":
fmt.Println("python语言") }
}
输出运行:
true...
良好
__________________________
A是元音
判断N年N月是几天
请输入年份:5482
请输入月份:5
5482年5月的天数是:31
Go语言
Processfinishedwithexitcode0
switch中break和fallthrough
package main
import"fmt"
funcmain(){
/*
switch中的break和fallthrough语句
break:可以使用在switch中,也可以使用在for循环中
强制结束case语句,从而结束switch分支
fallthrough:用于穿透switch
当switch中某个case匹配成功之后,就执行该case语句
如果遇到fallthrough,那么后面紧邻的case,无需匹配,执行穿透执行。
fallthrough应该位于某个case的最后一行
*/
n :=2
switchn{
case1:
fmt.Println("我是熊大")
fmt.Println("我是熊大")
fmt.Println("我是熊大")
case2:
fmt.Println("我是熊二")
fmt.Println("我是熊二")
break
fmt.Println("我是熊二")
case3:
fmt.Println("我是光头强") }
fmt.Println("____________________________")
m :=2
switchm{
case1:
fmt.Println("一月")
case2:
fmt.Println("二月")
fallthrough
case3:
fmt.Println("三月")
case4:
fmt.Println("四月") }}
运行输出:
我是熊二
我是熊二
____________________________
二月
三月
Process finished with exit code 0
读完点个赞,给我的坚持更新注入新的活力。
2022.05.06 日更 62/365 天
公众号:3天时间
网友评论