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

© 久违的微笑 中级黑马   /  2014-6-27 11:51  /  972 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

if else是一条比较指令,需要遍历条件分支直到命中条件

而swtich是一张地址表,而只需访问对应索引号的表项就能定位分支,所以switch有点以空间换时间的意思。

用优点来描述一下就明白了:

switch优点

当分支较多时,用switch的效率是很高的。因为switch是随机访问的,就是确定了选择值之后直接跳转到那个特定的分支,但是if else是遍历所以得可能值,知道找到符合条件的分支。如此看来,switch的效率确实比if else要高的多。

但是case常量分布范围很大但实际有效值又比较少的情况,switch的空间利用率将变得很低。

if优点

switch只能处理常量的情况,对非常量的情况是无能为力的。像a > 1 && a < 100,这种表达式是无法使用switch的,只能用if else。所以if else能应用于更多的场合。


2 个回复

倒序浏览
赞一个~
回复 使用道具 举报
顶一个++1:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马