第一句子大全,网罗天下好句子,好文章尽在本站!

switch和if else语句到底用谁

时间:2024-01-04

现在简单的回顾switch与if语句的基本构造,再深入了解它们的使用区别

友情提示:本文共有 2546 个字,阅读大概需要 6 分钟。

大家都知道在Java中一共有两种选择语句分别是switch与if语句,但究竟什么时候用?用哪一种好呢?这一直是大家心中的一个小疑虑。

现在简单的回顾switch与if语句的基本构造,再深入了解它们的使用区别。首先回顾下switch与if的基本结构

switch

说得再多,不如直接上代码

上述是一个简单的switch语句的例子,根据choose的取值不同,选择不同的case语句执行;如果没有匹配任何case值,则执行默认语句。

注意事项:1.choose的数据类型有一定要求:可以为byte、short、char、int、String、枚举,当然不同的JDK版本对switch影响不同。 2.choose一般建议是变量,当然也可以是常量。而case后面的值为常量,并且choose与case的值的数据类型要一致。 3.还记得每个case语句后的break吗?break表示退出此switch语句,如果没有break,则case语句会继续执行下去。

以上是switch比较重要的知识点,做一个简单的回顾。

接下来回顾下if语句

if语句

if语句的样式就比较多了。if语句分为三种:简单if语句、双分支if语句、多分支if语句

简单if语句

在代码中展示为:

大家可以直接从代码中看出来,简单if语句,也就只有if的存在,作为一个简单的判断,不管语句1执不执行,并不妨碍下方语句2的执行。

回顾了简单的if语句,接下来再说说双分支if语句

双分支if语句

还记得什么是双分支if语句吗?是在简单if语句的基础上添加对立的条件else语句 比如下面的代码:

通过条件1来判断是否需要执行语句1,如果条件1为真,则直接执行语句1;反之为假,则执行语句2。但是不管执行语句1或者语句2,语句3都会执行

双分支if语句中需要时刻了解其else的取值范围。

多分支if语句

什么是多分支if语句呢?就是在if…else的基础上,再加入更多的条件进行选择。

由于出现了一个else if,则每个判断的取值发生了变化,但在多分支if语句中,我们虽然可以像下面的代码一样添加更多的else if条件,但是选中的语句只会有一个,也就是说语句1、2、3只会有一个执行,谁先执行后面的就直接无效了,但并不影响语句4的执行。

很多同学都已经掌握了上述的内容

接下来,来看一个不一样的if语句

双if语句

什么是双if语句呢?

这个代码有点奇怪!一个代码中竟然连续出现多个if语句,那问题来了,到底执行哪一个if语句呢?答案是:都可能会执行,每个if语句间没有影响,不管是几个if语句,只要满足条件都会运行。

上述代码,条件1和条件2没有任何的关系,只要条件1满足就执行语句1,只要条件2满足就执行语句2,两者可能都会执行,当然,也可能都不执行;但请注意语句3一定会执行。

注意:不要把双if语句与多分支if语句傻傻分不清楚哟。

接下来进入我们的正题

switch和if else语句到底用谁

上面对switch于if else语句进行了基本结构的回顾。

从基本结构也可以看出其区别:

switch:主要是将choose中的值和某一个case值进行比较,而case值是一个确定的值。

if else:每个执行的语句前都会有一个条件,这个条件可以是类似x==0的这种匹配一个确定值的布尔表达式,也可以是x>10的这种匹配一个范围的布尔表达式。

从它们的结构可以大致的分析出它们的用法区别,下面我们举几个例子来详细的表现出它们的区别。

例子1:将一个班级按照 0-59:E级 60-69:D级 70—79:C级 80—89:B级 90-100:A级的要求对输入的成绩进行等级评判

若使用if else语句

而使用switch来完成该代码呢?

从上面可以看出,if else语句在这道题里用起来感觉挺顺手的,而switch呢?就要复杂得多了。

我们再来看一个例子

例2:给出如下选项,并根据选项进行效果展示:输入1:则输出“普通攻击”; 输入2:则输出“魔法攻击”; 输入3:则输出“使用道具”; 输入3:则输出“逃跑”;

当然,这道题更多出现在游戏的内容中

那如果我们使用if else语句该如何书写呢?

而使用switch语句呢?

从这个例子可以看出:switch写起来要比if else更为简洁,并且使用x==0这些方式写出来,难免感觉怪怪的。

综上两道题可以看出:switch更适用于有确切值的选择,而if else更适合用于进行范围判断的内容。

当然上述两道题可以互相转换,也就是说到底使用switch还是if else并没有严格要求,在恰当的地方使用恰当的方法是每个程序员需要深思熟虑的。

当然我们的讨论还没有结束,上面只是从例子说明了switch与if else的区别,接下来我们从它们的执行效率上来进行讲解。

switch与if else的执行效率

单从JVM的执行效率上讲的话,switch的执行效率要高于if语句:

原因在于:switch语句在运行时,首先会生成一个“跳转表”来指示实际的case分支的地址,而这个“跳转表”的索引号与swtich中的case值是相等的,这样的话,switch就不用像if else那样,遍历所有的条件,直至找到正确条件,而仅仅只需要访问对应索引号的表项就可以到达定位分支的目的。

简单的说,switch会生成一个数据统计表,将case后面的值全部统计起来,匹配时先拿表中的数据进行比较,如果有则直接跳转到相应case语句;如果没有,则直接跳转到default语句。

那if else呢?其实刚刚我们已经简单的说了其工作流程,这里再次说明一下:

if else语句需要一条一条的去进行取值范围的判断,直到找到正确的选项位置,这样的话势必会浪费大量的时间。

所以,单从其运行的效率来看,switch语句要更胜一筹。

总结

这里简单地总结一下:

1.switch语句由于它独特的case值判断方式,使其执行效率更高,而if else语句呢,则由于判断机制,导致效率稍慢。

2.到底使用哪一个选择语句,和当前的代码环境有关,如果是范围取值,则使用if else语句更为快捷;如果是确定取值,则使用switch更是一个不错的选择。

所有好的程序都是经过不断思考,不断琢磨,付出努力,最终得以完成的。

本文如果对你有帮助,请点赞收藏《switch和if else语句到底用谁》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(3)
  1. 诗语、琪琪2024-01-15 07:26诗语、琪琪[江苏省网友]203.30.162.107
    @老兵班将根据具体情况选择最合适的语句是关键。
    顶10踩0
  2. 老兵班将2024-01-11 14:30老兵班将[北京市网友]103.19.13.245
    使用switch语句可以更清晰地处理多个条件,而if+else语句适合处理复杂的条件逻辑。
    顶5踩0
  3. 小满2024-01-07 21:34小满[西藏网友]103.242.240.134
    为了代码的可读性和可维护性,选择适当的控制语句非常重要。
    顶0踩0
相关阅读
JavaScript 条件语句if switch-初级web前端工程师必学

JavaScript 条件语句if switch-初级web前端工程师必学

条件语句默认情况下,javascript解释器依照语句的编写顺序依次执行。而javascript中的很多语句可以改变语句的默认执行顺序。本文介绍可以改变语句默认执行顺序的条件语句、循环语句和跳转语句脚本的威力体现在它们可以根据...

2023-12-09 #经典句子

用Object键值替换switch语句

用Object键值替换switch语句

在许多编程语言中,switch语句存在 - 但是它应该更长吗?如果你是一个JavaScript程序员,你经常跳进和跳出对象,创建,实例化和操作它们。对象非常灵活,它们是JavaScript中几乎所有内容的核心,使用它们代替switch语句是我最近...

2023-05-22 #经典句子

Python 3.10来了 switch语法终于出现

Python 3.10来了 switch语法终于出现

...布了,新的 beta 版最大的亮点可能就是引入了 switch-case 语句。Python 3.10 beta 版新改进Switch 语句存在于很多编程语言中,但 Python 编程语言不支持 Switch 语句。早在 2016 年,PEP 3103 就被提出,建议 Python 支持 switch-case 语句。然而,...

2023-09-14 #经典句子

switch语句的使用方法

switch语句的使用方法

使用if语句嵌套解决实际问题中的多分支选择时,如果分支数目非常多,那么if语句的嵌套层数也会很多,使得程序代码变得冗长而且可读性会下降。C语言提供了switch语句来处理多分支选择。switch语句的语法形式如下:switch(表达...

2012-11-08 #经典句子

Java流程控制之switch多分支语句!

Java流程控制之switch多分支语句!

...一个值来检测它,依此类推。当然,这种问题使用if条件语句可以完成。例使用if语句检测变量是否复合某个条件,关键代码如下:String grade = "A";if(grade == "A") {System.out.println("真棒");}if(grade == "B") {System.out.println("做的不错")}这个...

2023-07-15 #经典句子

传智播客:选择语句switch以及循环语句for的知识大全附习题

传智播客:选择语句switch以及循环语句for的知识大全附习题

一、选择语句----switchswitch语句的格式如下:执行流程:首先计算出表达式的值然后是和case依次比较,一旦有对应的值就会执行相应的语句。在执行的过程中,遇到break就会结束。最后如果所有的case都和表达式的值不匹配,就会...

2023-08-29 #经典句子

Java选择语句 switch的简单介绍

Java选择语句 switch的简单介绍

各位小伙伴们大家好,这次小编要介绍的是,Java选择语句:switch。什么是选择语句呢?小编觉得,其实和判断语句差不多,首先我们来看下选择语句的流程图。简单的理解,就是表达式满足那个值,就会往下执行,遇到break就会...

2023-09-30 #经典句子

C语言的switch语句 输入字母 输出该字母打头的动物名

C语言的switch语句 输入字母 输出该字母打头的动物名

switch语句:switch语句是多重选择语句,和break一起搭配使用,注意switch的表达式的值只能是整数或者是char类型,格式如下:switch(表达式){case 值1:语句1;break;case 值2:语句2;break......default:以上情况都不满足的情况下的语句...

2022-11-22 #经典句子