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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zczcyc0201 中级黑马   /  2012-10-14 19:22  /  1981 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(1)尽管switch语句与if语句一样,是条件选中语句,但实际上switch语句只能取代if语句的一部分功能。switch语句只能做等式比较,即用switch之后括号内的表达式结果与各case分支后的常量做相等比较,如相等则执行case后的语句,否则跳过;而if语句可做各种关系比较。(2)switch之后括号内的表达式只能是整型(byte、short、char和int)、枚举型或字符型表达式,不能是长整型或其他任何类型。switch就像是多彩的盒子,你一眼就可以分辩出来,但是if相当于在盒子中加了个外包装,你得一个一个的看,才知道是哪个。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

4 个回复

正序浏览
因为switch的条件简单,编译器会为它做二分法优化(或跳转表).平均性能要高一点.而if   else所比较的条件会远远比switch的复杂,编译器通常不会做过多的优化.当然你可以手工优化....
一般情况下,是差不多的.
回复 使用道具 举报
switch相当于直接获取一个索引,到达指定的代码块去执行,if需要逐个判断,效率要较低,不过更灵活些。
回复 使用道具 举报
本帖最后由 马磊 于 2012-10-14 20:34 编辑

为什么总发两遍?网速太不给力了。。。。。
回复 使用道具 举报
Java 7里面 switch后括号内已经可以存放字符串了,用起来更方便,不过一般开发中使用switch的不多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马