java case switch面试_Java基础篇——Java中switch case语句用法及注意事项面试题9期
本文主要说一说关于switch case语句用法及注意事项,应对面试官的提问。希望可以帮助那些对switch存在错误和各种细节问题的“码友”。
switch-case注意事项
switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,比如byte、short、int、char、还有枚举;需要强调的是:long和String类型是不能作用在switch语句上的。注意的是在JDK1.7之后,switch(A),括号中A的取值也支持String了。
语法case B:C,case是常量表达式,也就是说B的取值只能是常量(需要定义一个final型的常量)或者int、byte、short、char、String(比如1、2、3、200、yoodb等),case后的语句可以不用大括号,也就是说C不需要使用大括号;default没有符合的case就执行它,default并不是必须的。
switch-case语句格式如下:switch(变量){
case 变量值1:
//;
break;
case 变量值2:
//...;
break;
...
case default:
//...;
break;
}
案例一:若未找到,则执行默认的caseint i = 6;
switch(i){
case 0:
System.out.print("0");break;
case 1:
System.out.print("1");break;
case 2:
System.out.print("2");break;
default:
System.out.print("default");break;
}
运行结果输出:default
案例二:当每一个case都不存在break时,匹配成功后,从当前case开始,依次返回后续所有case的返回值。int i = 2;
switch(i){
case 0:
System.out.print("0");
case 1:
System.out.print("1");
case 2:
System.out.print("2");
default:
System.out.print("default");
}
运行结果输出:2 default
案例三:当每一个case都不存在break时,JVM并不会顺序输出每一个case对应的返回值,而是继续匹配,匹配不成功则返回默认case的值。int i = 6;
switch(i){
case 0:
System.out.print("0");
case 1:
System.out.print("1");
case 2:
System.out.print("2");
default:
System.out.print("default");
}
运行结果输出:default
案例四:若当前匹配成功case但不存在break时,则从当前case开始,依次返回后续case的返回值,直至遇到break,跳出判断。int i = 2;
switch(i){
case 0:
System.out.print("0");
case 1:
System.out.print("1");
case 2:
System.out.print("2");
case 3:
System.out.print("3");break;
default:
System.out.print("default");
}
运行结果输出:2 3
解决问题
大家看下面的程序段,具体代码如下:public class TestSwitch {
public static void main(String[] args){
byte a = 11;
switch(a){// C
case 11 : System.out.println(" 11 "); break;
case 225 : System.out.println(" 11 "); break;// D
}
}
}
该代码正确吗?答案是否定的。虽然C处byte类型的a值可以存在switch中,但是在D处case的值是225时,大小超出了byte的最大值范围,导致出现错误。
个人总结
switch case执行过程中,一定是先进行匹配,匹配成功后返回当前case的值,再根据是否存在break判断是否继续输出,或者跳出判断,注意的是case B:C,B的取值只能是常量,不能是变量,否则JVM报错。
java case switch面试_Java基础篇——Java中switch case语句用法及注意事项面试题9期相关推荐
- java三大特性 继承_java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- java的技术定义_java基础知识——Java的定义,特点和技术平台
(作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...
- java 格式化 布尔型_Java基础篇(1)-格式化
本文目录: 十进制数字格式化--DecimalFormat 数字格式化基类--NumberFormat 字符串格式化类--String.format() Linux输出格式化--printf 1. 十 ...
- java int相除向上取整_Java基础篇——Java运算符
Java运算符按功能可分为:算数运算符.关系运算符.逻辑运算符.位运算符.赋值运算符和条件运算符. 算数运算符 算术运算符包括通常的加(+).减(-).乘(*).除(/).取模(%),完成整数型和浮点 ...
- java视频教程千峰_java基础教程-Java开发入门视频教程-千锋教育视频资源库
第1节 - Java由来及语言特点 点击播放 第2节 - Java的执行机制及第一个应用程序 点击播放 第3节 - 类的阐述及Package相关 点击播放 第4节 - Java的编码规范 点击播放 第 ...
- java单引号转义_Java基础入门——Java语言基础(上)
本篇我们开始进入Java的学习,首先在学习如何编写Java语言前要先了解Java程序的基本结构. 一.Java程序的基本结构 一个Java程序的基本结构大体可以分为包.类.main()主方法.标识符. ...
- java知识串讲_java基础之Java知识串讲
一.JDK个版本之间的区别: 1.JDK1.5的新特性: 泛型ArrayList list = new ArrayList();-->ArrayList list = new ArrayList ...
- java基础篇_java基础篇1
JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**ja ...
- java从小白到工程师--基础篇(二)
本期作业:将你的姓氏的Unicode码用程序显示出来. 上一章节中我们配置了环境变量,编写了第一个java程序"hello,world"(java从小白到工程师--基础篇(一) ) ...
最新文章
- adv7842自定义方式
- 【整数反转】算法优化笔记
- 杨柳目-杨柳科-Info-新闻:注意了!杨絮解决有办法了
- 关于oracle中to_char和to_date的用法
- Gift for GS5
- JavaFX将会留下来!
- ollyice的学习
- 威胁情报 设备之外的安全能力
- html为标题添加脚注,如何在rmarkdown html中的特定标题下放置脚注?
- 初识云计算————虚拟化背景
- Spring复习——B站
- 在职考研读计算机科学,能否以在职读研的形式学习在职研究生计算机科学与技术专业?...
- anaconda环境迁移
- proxmox ve 7.2 AMD显卡直通 网卡驱动 调度器
- 【C语言】C语言中赋值语句规则
- CIKM 2020 | 一文详解美团6篇精选论文
- 监控文件变化 (Python—看门狗)
- python返回上一个交易日
- 第四章:项目整合管理 - (4.6 实施整体变更控制)
- 图的遍历算法-七巧板涂色