本篇文章和大家了解一下java中switch语句的用法介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
一. switch分支结构
1. 简介
switch结合case,能够判断一个变量或表达式与一系列值中的某个值是否相等,这里的每个值都被称为一个分支。switch语句在执行时,会先进行值的匹配,匹配成功时会进入到对应case语句。再根据是否有 break语句,判断是否继续输出,或是跳出当前switch判断。
2. 基本语法
在使用switch之前,首先我们得记住它的基本语法结构,其基本语法格式如下:
switch(值){ case 值1: //switch中的值与值1相等时执行的代码 break; //可选 case 值2: //switch中的值与值2相等时执行的代码 break; //可选 case 值3: //switch中的值与值3相等时执行的代码 break; //可选 case 值4: //switch中的值与值4相等时执行的代码 break; //可选 default: //switch中的值与以上所有值都不相等时执行的代码 break; //可选 }
那么这个语法具体有哪些要求呢?请继续往下看。
3. 语法规则(重点)
根据上面介绍的switch语法结构,再给大家详细说一下switch的语法规则和要求。
switch(值)语句中的”值“,支持的类型有如下几类:
整型:byte、short、int 、char及其对应的包装类;
枚举类型,从JDK 5开始支持(后面会详细讲解枚举类型);
String类型,从JDK 7开始支持,同时case标签后的值必须是字符串常量或字面量。
switch后面可以有多个 case 语句,每个 case 后都要跟一个待比较的值和冒号。
case标签后面值的数据类型必须与switch(值)中的数据类型相同,且只能是常量或者字面常量。
当switch(值)的值与 case语句中的值相等时,case标签后面的语句开始执行,遇到break标签时停止执行switch语句。
case语句中不一定非要带有break语句。如果case后没有 break 语句,程序会继续执行下一个case 语句,直到出现 break 语句,这种现象叫做”case穿透“。
switch语句中可以包含一个default默认分支,该分支一般是 switch 语句的最后一个分支,当switch的值和case语句的值不相等时执行。default 分支中不用带有break 语句,另外该分支可以放在任何位置,但建议写在最后面。
4. 执行逻辑
根据上面的语法规则,我们可以结合下图来理解switch语句的执行逻辑。switch的执行逻辑,其实就相当于是把多种情况分别列出,根据我们输入的值来判断符合哪种情况。符合哪个情况,就进入到对应的分支里面去执行,整体的执行逻辑就是这样的,如下图所示:
if和switch都是Java里的分支选择语句,它俩都属于条件分支语句;
很多时候,if和swich可以实现的效果类似。
2. 不同点
switch结构只能处理等值条件判断的情况,且条件必须是整型、枚举变量或字符型变量;
多重if选择结构没有switch结构的诸多限制,特别适合某个变量处于某个连续区间时的情况;
if比switch应用范围更广、更灵活。if可以实现的条件判断,switch不一定能够实现;switch可以实现的条件判断,if肯定可以实现。
if 在应用中更为常见,但switch的结构更清晰。
switch使用查找表比对的方式,使得case的条件必须是连续的常量,if语句则没有这些限制。
一般情况下,switch比if-else效率更高。 因为switch内部使用了Binary Tree算法,不管有多少个case,都只计算一次值,直接跳转,不需逐个比较查询,除非是if-else的第一个条件就为true。
switch的效率其实与分支数无关。只有当分支比较少时,if语句的效率才比switch高,因为switch有跳转表。当分支较多时,推荐使用switch语句。
以上就是java中switch语句的用法介绍的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注***行业资讯频道哦!