switch语句在企业笔试的时候可以说是一道必考的题目啊,虽然switch挺简单的,但是它还是有一些必须知道的细节的。
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怎么转成整数?到这里的思路就断了。有思路的同学,可以给我指点指点啊。
分享到:
相关推荐
:・Switch语句的用法; 工程描述 :・工程1:猜数字游戏 教学方法 问题导引法:通过给学生提出实际编程中出现的问题来引入教学内容,使学生在主动分析、讨论和解决问题的过程中掌握所学知识; :・案例分析法:通过...
2. 课程包含: JDK安装、开发环境搭建,java编程基础知识,分支语句、循环语句、封装、继承、多态等并配备相应练习题,希望对大家有所帮助。 PS:只做java是动力节点的战略布局,让每位初学者顺利入门是动力节点零...
跳转控制语句 三元运算符 逻辑运算符 短路逻辑运算符 数组 方法简述 switch语句 if语句 关系运算符 自增自减运算符 赋值运算符 算术运算符 类型转换 Java简述 标识符 变量 数据类型 常量 关键字
在本篇文章里小编给大家分享了关于Java提示缺少返回语句的解决办法以及相关知识点,需要的朋友们参考下。
3.2.2 插曲:Java中的语句 37 3.2.3 创建一个变量和变量名的规范 37 3.2.4 Java中的基本运算符和表达式 39 3.2.5 Java中的布尔运算符 43 3.3 基本数据类型运算的难点 47 3.3.1 强制类型转换——小数哪里去了 48...
3.2.2 插曲:Java中的语句 37 3.2.3 创建一个变量和变量名的规范 37 3.2.4 Java中的基本运算符和表达式 39 3.2.5 Java中的布尔运算符 43 3.3 基本数据类型运算的难点 47 3.3.1 强制类型转换——小数哪里去了 48...
第5 版 清华大学出版社 “SCJP学习指南” 人民邮电出版社 “Java 编程思想” 第3版 机械工业出版社 教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 ...
switch (关键字) 选择语句。 n.开关,道岔 [switʃ] synchronized (关键字) 同步(锁) ['siŋkrәnaiz] Thread [java] 线程 [θred] throw (关键字) throws (关键字) [θrәu] 抛出(异常) transient (关键字) 瞬变;...
ASCII、 隐显转换、 三大循环、 while 语法结构、 for循环、 do...while()循环、 switch语句、 练习题
记录一下java学习过程的重要知识点 1.在java中如果被除数或者除数有一个为浮点类型,0或者0.0是可以用作除数的,结果得正负无穷;取余操作亦是如此。 2.java在7.0之后switch语句case后面支持String类型。 3.java嵌套...
Java知识点总结 48 一 布尔类型 48 二 强转 48 三 运算符: 49 1 关系运算符: 49 2 逻辑运算符 49 3 算数运算符: 49 4 赋值运算符: 49 5 连接符 : 49 四 if判断 49 (1)if语法: 49 (2)if else语法: 50...
4.2.2 switch分支语句 76 4.3 循环结构 78 4.3.1 while循环语句 78 4.3.2 do while循环语句 79 4.3.3 for循环 80 4.3.4 嵌套循环 83 4.4 控制循环结构 84 4.4.1 使用break结束循环 84 4.4.2 使用continue...
【基础】switch支持的类型 17 【基础】当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 17 【基础】重载(Overload)和重写...
一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...
5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,...
3.8.5多重选择――switch语句 3.8.6中断控制流程语句 3.9大数值 3.10数组 3.10.1 “for each”循环 3.10.2数组初始化器以及匿名数组 3.10.3数组拷贝 3.10.4命令行参数 3.10.5数组排序 ...
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...
3.8.5多重选择――switch语句 3.8.6中断控制流程语句 3.9大数值 3.10数组 3.10.1 “for each”循环 3.10.2数组初始化器以及匿名数组 3.10.3数组拷贝 3.10.4命令行参数 3.10.5数组排序 ...
3.8.5多重选择――switch语句 3.8.6中断控制流程语句 3.9大数值 3.10数组 3.10.1 “for each”循环 3.10.2数组初始化器以及匿名数组 3.10.3数组拷贝 3.10.4命令行参数 3.10.5数组排序 3.10.6多维...