Java-switch语句必知知识点
2013-12-08 11:42
751 查看
switch语句在企业笔试的时候可以说是一道必考的题目啊,虽然switch挺简单的,但是它还是有一些必须知道的细节的。
1.default分支的隐含条件
在case分支中,可以添加default作为默认的执行语句。但是default分支执行是有一个隐含条件的,那就是default分支之前的case分支都不符合。即只有之前的case分支都不符合时,才会执行default分支。
2.由break引发的陷阱
有时候在试题中面试官会故意在case分支中少写break语句,由此来考察面试者是否对switch语句理解到位。比如下面这道题:
哈哈,是不是有点困惑了呢?
从执行结果可以看出:当switch语句找到对应的case之后,便执行相应的方法体,而且不再判断case和default后的标签是否符合,一直遇到break时才结束执行。
3.switch表达式的类型
“switch后的表达式可以是什么类型”?如果问到这道题,你是不是要跪了呢?嗯,再复习一下吧。
对于switch语句而言,它支持五种数据类型,分别是:
①byte:字节整型
②short:短整型
③int:整型
④char:字符型
⑤enum:枚举型
其实除了枚举型,其他的4个都可以转化成整数。所以,可以理解成switch支持整型的数据和枚举型的数据。
但这里还有一点不是很清楚,既然说是switch支持整型,那么short/int当然是整数,而char是字符,可以转换成ASCII整数。而byte呢?byte怎么转成整数?到这里的思路就断了。有思路的同学,可以给我指点指点啊。
1.default分支的隐含条件
在case分支中,可以添加default作为默认的执行语句。但是default分支执行是有一个隐含条件的,那就是default分支之前的case分支都不符合。即只有之前的case分支都不符合时,才会执行default分支。
2.由break引发的陷阱
有时候在试题中面试官会故意在case分支中少写break语句,由此来考察面试者是否对switch语句理解到位。比如下面这道题:
char score = 'C'; switch(score) { case 'A': System.out.println("优秀"); case 'B': System.out.println("良好"); case 'C': System.out.println("中"); case 'D': Systemm.out.println("及格"); case 'E': System.out.println("不及格"); default: System.out.println("成绩输入错误"); } /*输出: 中 及格 不及格 成绩输入错误 */想想看上面这道题会输出什么?
哈哈,是不是有点困惑了呢?
从执行结果可以看出:当switch语句找到对应的case之后,便执行相应的方法体,而且不再判断case和default后的标签是否符合,一直遇到break时才结束执行。
3.switch表达式的类型
“switch后的表达式可以是什么类型”?如果问到这道题,你是不是要跪了呢?嗯,再复习一下吧。
对于switch语句而言,它支持五种数据类型,分别是:
①byte:字节整型
②short:短整型
③int:整型
④char:字符型
⑤enum:枚举型
其实除了枚举型,其他的4个都可以转化成整数。所以,可以理解成switch支持整型的数据和枚举型的数据。
但这里还有一点不是很清楚,既然说是switch支持整型,那么short/int当然是整数,而char是字符,可以转换成ASCII整数。而byte呢?byte怎么转成整数?到这里的思路就断了。有思路的同学,可以给我指点指点啊。
相关文章推荐
- Java - Switch case 语句知识点(面试)解析
- Java基础之switch语句
- JAVA 控制流程之分支语句 (switch)
- Java_switch语句测试
- 牛客网Java刷题知识点之构造函数与set方法、与类名同名的一般方法、构造函数中有return语句
- Java温故知新 - Switch语句
- Java中switch语句
- Java之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致 Java之戳中痛点 - (4)i++ 和 ++i 探究原理 Java之戳中痛点 - (1)易变业务使用脚本语言编写 Java之戳中痛点 - (2)取余用偶判断,不要用奇判断 (5)switch语句break不能忘以及default不同位置的用法 Java之戳中痛点 - (7)善用Java整型缓存池
- java_switch语句详解
- java中的条件语句Switch的注意点(随记)
- Java基础(极客)——02、Java语言Switch语句详解
- Java基础 - 逻辑、位运算符,if、switch语句
- java练习 四、 判断语句 switch……case
- Java语言Switch语句详解
- Java的switch语句模拟单项选择题
- java中的switch...case..语句详细介绍
- Java:switch语句与c语言的不同,大写转换方法
- JAVA-switch语句详解
- 黑马程序员_JAVA笔记02——标识符、进制、变量、运算符、if和switch语句
- java中的switch case语句