switch 的课堂练习|学习笔记

简介: 快速学习switch 的课堂练习

开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:switch 的课堂练习】与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/625/detail/9572


switch 的课堂练习


内容介绍:

一、switch 课堂练习

二、switch 与 if 的比较

前面已经讲过switch的基本语法和使用细节,但不能只说不练习肯定是认识不到位的,下面布置了四个课堂练习,将会对前三个进行讲解,第四个课后独立完成


一、switch 课堂练习

1、案例1

使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a,b,c,d,e,其他的输出“other”。观察要求可知不允许使用函数。代码为:

func main(){ //定义主函数

var char byte //定义字符型变量char,使用 byte 接收

fmt.Println(“请输入一个字符”) //信息提示

fmt.Println(“%c”,&char) //按照字符格式进行接收

switch char{ //进行顺序判断

case ‘a’:  //如输入等于a

fmt.Println(“A”) //则输出A,其他的转换以此类推。这里是直接匹配进行输出,也可以用其他方法,比如通过asc码加上一个数值就可以转化为大写,asc码减去一个数值就可以转化为小写。

case ‘b’:

fmt.Println(“B”)

case ‘c’:

fmt.Println(“C”)

case ‘d’:

fmt.Println(“D”)

case ‘e’:

fmt.Println(“E”)

default:

fmt.Println(“other”) // 如果以上都不是就输出other。

}

}

Ps:可以直接在软件上调整代码格式

运行结果:

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入一个字符..

a

A

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入一个字符..

b

B

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入一个字符..

t

other

2、案例二

对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。(注:输入的成绩不能大于100

代码为:

var score float64 //定义score接收成绩,可能为小数所以类型为float64。fmt.Println(“请输入成绩”) //提示信息

fmt.Scanln(&score)  //输入成绩后接收

switch int(score / 60){ //score/60取整数进行判断,如果成绩为60以上的话,取整后值为1,如果取整后不为1,就代表不及格。

case 1: //判断为1的话    fmt.Println(“及格”) //则输出及格

case 0: //判断不为1的话

fmt.Println(“不及格”)//则输出不及格

default: //其他情况

fmt.Println(“输入有误..”) //则输出输入有误

运行结果:

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入成绩

90

及格

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入成绩

59

不及格

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入成绩

900

输入有误..

3、案例三

根据用户指定月份,打印该月份所属的季节。3、4、5春季,6、7、8夏季,9、10、11秋季,12、1、2冬季。

代码为:

var month byte     

//定义变量month,类型为byte

fmt.Println(“请输入月份”) //信息提示为输入月份

fmt.Scanln(&month) //进行接收

switch month{

case 3,.(“summer”)

case 9,10,11:

fmt.Println(“autumn”)

case 12,1,2:

fmt.Println(“winter”)

default: //输入月份都不在这里面

fmt.Println(“输入有误..”) //则输出输入有误

这里用到了 Golang 中把多个表达式写在同一个  case 语句中的特性。

运行结果:

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入月份

1

winter

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入月份

8

summer

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入月份

3

spring

D:\goproject\src\go_code\chapter05\exec\exec04>go run main . go

请输入月份

89

输入有误..

4、案例四

根据用户输入显示对应的星期时间(String),如果“星期一”,显示“干煸豆角”;如果“星期二”,显示“醋溜土豆”;如果“星期三”,显示“红烧狮子头”;如果“星期四”,显示“油炸花生米”;如果“星期五”,显示“蒜蓉扇贝”;如果“星期六”,显示“东北乱炖”;如果“星期日”,显示“大盘鸡”。(自行练习)


二、Switch 和 if 的比较

switch 和 if 在 Golang 中的区别比较小,因为在前面讲解 switch 细节的时候讲过switch 本身就可以当 if-else 进行使用,可以什么条件都不要,甚至还能做范围的判断。但是如果需要用到的话,下面也可以了解一下,总结了什么情况下使用 switch ,什么情况下使用 if。

1、如果判断的具体数值不多,而且符合整数、浮点数、字符、字符串这几种类型。建议使用 switch 语句,简洁高效。比如判断春夏秋冬的例题,这个范围就是有限的,具体的数值不多,这个时候用 switch 是比较高效的。

2、其他情况,对区间判断和结果为 bool 类型的判断,使用 if , if 的使用范围更广。所以如果涉及范围的判断还是用 if,会更灵活方便,比如成绩的判断,性别的判断。

相关文章
|
1天前
switch的使用细节
switch的使用细节
5 0
|
2月前
|
C++ 存储
C++从零基础到入门(2)—— (if、switch、for、while语句)
C++从零基础到入门(2)—— (if、switch、for、while语句)
C++从零基础到入门(2)—— (if、switch、for、while语句)
|
2月前
|
Java
Java程序设计基础——switch选择语句
Java程序设计基础——switch选择语句
|
2月前
|
C语言 C++
C语言9🔥:switch case 语句
C语言9🔥:switch case 语句
31 0
|
2月前
|
前端开发
前端知识笔记(五)———break和continue的区别是什么?(详细)
前端知识笔记(五)———break和continue的区别是什么?(详细)
25 0
|
11月前
|
Go C语言
c语言学习第八课----goto语句与函数
c语言学习第八课----goto语句与函数
79 0
|
11月前
笔记||switch语句
笔记||switch语句
59 0
|
C语言
【C语言—零基础第八课】循环结构与break continue
生活总最不缺的就是循环了,地球绕着太阳转、一周7天、一天24小时、一小时60分钟这就是循环。在C语言中也存着循环。如果让你使用C语言答应出100条“我喜欢C语言”,你会选择什么样的方法,我想你一定不想打出100条print(“我喜欢C语言\n”);太累了,又无脑。所以我们学的循环结构就是用来解决这个问题的,循环语句有while、do-while、for。
410 0
|
算法 C语言
【C初阶】第二篇——分支语句和循环语句(if-else+switch+while+for)(二)
【C初阶】第二篇——分支语句和循环语句(if-else+switch+while+for)
【C初阶】第二篇——分支语句和循环语句(if-else+switch+while+for)(二)
|
Go 数据安全/隐私保护 开发者
break 课堂练习 | 学习笔记
快速学习 break 课堂练习
98 0
break 课堂练习 | 学习笔记