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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huangxuanheng 中级黑马   /  2014-8-7 22:11  /  2664 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

switch和if哪个效率更高?为什么?

21 个回复

正序浏览
fantacyleo 发表于 2014-8-7 22:52
Java的switch和C的switch一样,编译后会生成一个类似Map的结构,比如:

你可以认为编译器会生成一个size为 ...

很专业,赞一个
回复 使用道具 举报
switch效率高,但是有局限性,switch里面只能是基本数据类型. 但是在jdk1.7 String好像也能在switch里面应用了.
回复 使用道具 举报
舍我其谁 发表于 2014-8-8 00:16
switch 适合用于等值的判断,而 if 适合用于对区间的判断

:victory::handshake
回复 使用道具 举报
wawsc5354524 发表于 2014-8-8 00:12
3L 回复的很详细,针对不同的情况使用不同的方法才是最高效的

是啊,实事求是
回复 使用道具 举报
Bule丶 发表于 2014-8-7 22:53
这个怎么说呢,在不同的地方用不同的判断语句,如果楼主用jdk1.7用来判断类似男女那种的,switch最好了,因 ...

恩恩,略能感受到了
回复 使用道具 举报
看需求~~~
回复 使用道具 举报
fantacyleo 发表于 2014-8-7 22:52
Java的switch和C的switch一样,编译后会生成一个类似Map的结构,比如:

你可以认为编译器会生成一个size为 ...

有意思......
回复 使用道具 举报
这个是看情况的。。不同的情况下有不同的判断。。多做点题,慢慢就明白了
回复 使用道具 举报
看需求而定
回复 使用道具 举报
liqi 中级黑马 2014-8-10 22:31:29
13#
这个知识点都忘了,复习了一遍
回复 使用道具 举报
楼上说得对
回复 使用道具 举报
如果能用switch,当然switch效率能高点。
回复 使用道具 举报
侯岩卿 来自手机 中级黑马 2014-8-9 22:41:30
10#
没有哪个效率高!只有哪个合适!针对不同的情况用不同的判断方式。
回复 使用道具 举报
switch,switch像是我们做选择,选择几就是几,就是有这个选项能直接去选项执行,if就像做判断,先判断第一句代码符不符合,不符合就再判断下一句,不对再向下.......就这样一直到找到符合就完了,不过我说的这些是针对要判断好多的时候
回复 使用道具 举报
舍我其谁 发表于 2014-8-8 00:16
switch 适合用于等值的判断,而 if 适合用于对区间的判断

:D...........
回复 使用道具 举报
fantacyleo 发表于 2014-8-7 22:52
Java的switch和C的switch一样,编译后会生成一个类似Map的结构,比如:

你可以认为编译器会生成一个size为 ...

:loveliness:
回复 使用道具 举报
switch 适合用于等值的判断,而 if 适合用于对区间的判断
回复 使用道具 举报
3L 回复的很详细,针对不同的情况使用不同的方法才是最高效的
回复 使用道具 举报
这个怎么说呢,在不同的地方用不同的判断语句,如果楼主用jdk1.7用来判断类似男女那种的,switch最好了,因为switch是给了cast一个标志,这个标志代表了下面的代码,if判断是每一次判断都开辟一块空间,效率肯定是没switch高的,这个主要还是看楼主用与判断的数据是什么,jdk1.7的switch可以判断字符串喔,底层是基于hashCode码来判断的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马