Java学习笔记20——选择结构

 

 解释分析结构:

 
1、switch表达式的结果可以是哪些数据类型?(面试题)
表达式的结果可以是:byte,short,int,char
在JDK1.5以后可以是枚举类型
在JDK1.7以后可以是String
 
2、名词解释:
case:后面跟的是要和表达式进行比较的值(常量),如果说匹配到了对应的case的值,
那么就执行相对应的语句体,而且这个语句的部分可以是一条语句,也可以是多条语句。
break:表示中断的意思,结束的意思,可以结束switch语句
default:表示默认的意思当表达式的值与所有的case的值都不匹配的时候,最后才执行
default中的语句体。(与if-else if...-else中最后的else对应着理解)
3、执行流程:
1、计算表达式的值
2、拿着这个计算好的值与case相对应的值(常量)按照顺序从上往下依次进行比较。
如果有相同的值,就开始执行此位置的case中的语句体内容。
3、当语句体的内容执行完毕后,会紧接执行break语句,执行break语句就代表着
咱们这个switch选择结构的结束(跳出switch选择)
4、当第二部从上往下去匹配case的值的时候,如果没有匹配到相应的值,就会执行
default语句中语句体内容,最后跳出switch语句
 
 
案例:
买饮料案例(假设只能买跟口袋里一样多的钱的东西,且只能买一样):
可乐 3
旺仔牛奶 5
红牛 6
农夫山泉 2
脉动 4
 
用switch语句实现购物,键盘录入身上带了多少钱。

 

 

 

 

 输出结果:

 

 

 

 注意事项:

1,、case后面的值不能有重复
2、default语句可以进行省略,一般情况下不建议删除
3、case后面紧跟着的只能是常量,或者常量之间的运算,不能是变量
4、break语句可以省略,代码也不会报错,一般情况下,不建议省略,
如果你省略了,结果可能不是你想要的结果
当匹配到break语句省略的那个case的时候,首先会执行相对应的语句体,
然后从匹配到的case已知运行到有break为止
5、default语句可以放在任意地方吗?
可以,也我们switch语句执行流程是严格按照先在所有的case中进行匹配,当所有的case都不匹配的时候,最后再执行default语句,这和你default语句写的顺序没有关系
 
 
注意事项4示例:
break已被注释

 

 

 注意事项5示例:

defualt放在最上面

 

 

 switch语句练习

 

 

 案例1、模拟做单项选择题,根据你的选择,给出对应的答案。(表达式是字符的情况)

 
数加学院怎么样?
A:非常好 B:很好 C:优秀 D:无与伦比

 

 

 

 

 案例2(同案例1 略)

 
案例3、用switch语句实现键盘录入月份,输出对应的季节
春季:3-5
夏季:6-8
秋季:9-11
冬季:12-2

 

 

 

 

 案例4、看程序写结果

 

 

 

 如果把break删掉:

 

 

 

 根据先执行case语句最后执行default语句原则,输入的x=2都没有与之匹配的case,那么执行default语句,

y自加等于4,又因为没有break,所以程序自上而下继续执行(穿模,穿透),y又经过自加等到最终结果6
 
 

 

可以看出if语句使用的范围更广,推荐优先使用if语句
 
 
switch语句与if语句嵌套使用
买饮料的案例:

 

 

 

 

 

 

 

 

posted @ 2021-11-29 21:54  欧朋  阅读(64)  评论(0)    收藏  举报