A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王希军 中级黑马   /  2013-8-2 16:04  /  1609 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜光 于 2013-8-4 10:30 编辑

if语句和swith语句哪个语句运行效率更高些?

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

11 个回复

倒序浏览
当然是switch了,而且switch现在也支持字符串了,好像是1.7的新特性!!!!!!!!!!
回复 使用道具 举报
主要看情况,如果是一个判断,正反两个选择,当然就用if了,然后开始执行语句就行了。但是,如果是一个对象,好几个可能的判断结果,每个结果都不一样执行,这就用swiith方便高效
回复 使用道具 举报
switch语句效率高。这是张孝祥老师说的,具体为什么可以百度一下。
回复 使用道具 举报
王靖远 发表于 2013-8-2 17:12
switch语句效率高。这是张孝祥老师说的,具体为什么可以百度一下。

o           
回复 使用道具 举报
if和switch这两个语句的效率即使有差别也相差不大,主要是两者应用的情况不一样.switch是选择结构,它只能用来判定是否相等,相等则执行相应的case;但if语句不但可以支持选择结构,更主要的是可以进行区间的判定,比如当100<i<1000之间时,要执行某段代码,此时显然无法用switch来进行判断,只能用if.这种区别决定了switch和if的应用情景,这才是重点,执行效率可以说没区别!

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
swith 效率要高点,但目前我有if 要用得多点。。
回复 使用道具 举报
本帖最后由 逆袭的风 于 2013-8-2 18:58 编辑

switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。
相比于if-else结构,switch的效率绝对是要高很多的,但是switch查找的方式决定了使用上不如if-else灵活多变。

另外:if 一般适用于情况较少的条件出现,要么执行A,要么执行B。
        但是有时要用到众多的if 就非常的繁琐,像这种多分支的选择,我们一般采用switch.switch 适合多种情况,且变量是精确值.

回复 使用道具 举报
1.使用场景:首先它们都是用来判断,模拟生活中需要判断之后做出处理的情况
2.如果判断的条件为区间用if  只能用if 不能用switch
3.如果判断的条件为等值判断,用switch 也可以用if
也就是说if 二者通用 switch只能判断条件为区间的
回复 使用道具 举报
if主要用于 有固定数值的寻环,而switch反之
回复 使用道具 举报
多重if和switch结构的区别
1都用来结构多种判断情况
2if用来解决判断为区间,也可以用来做等值判断
3switch只能用来完成等值判断

循环比较
1 while 用在java语言自身系统中,用来遍历java语言自身系统中提供的集合,
如果循环次不确定用while()打印今天的所有用新闻   while(result.hasNext()){}
2 for用在遍历之前,次数是给定或确定的。打印全班的java成绩
3 for循环能提高内存使用效率

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马