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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 咖啡 黑马帝   /  2011-11-17 19:54  /  3107 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

if和switch语句很像
具体什么场景下,应用哪个语句呢?

评分

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

查看全部评分

15 个回复

倒序浏览
switch一般是分多种情况,然后根据不同情况分支的,用switch时一般至少有三种情况,两种情况的话可以用if else

评分

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

查看全部评分

回复 使用道具 举报
老毕的原话:
如果判断的具体数值不多,而且符合byte,short,int,char这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效率高
其他情况:对区间判断,对结果为boolean类型的判断,使用if

评分

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

查看全部评分

回复 使用道具 举报
泼孩 黑马帝 2011-11-17 20:30:54
板凳
1. if 条件判断语句,可以判断区间 ,switch选择结构,很难用来判断区间
2.if 可以执行结果为boolean类型的语句,switch不可
3.如果对具体数值进行判断可用switch,值不多的情况下,使用if相对效率较高
相比之下,if的使用范围更广、

评分

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

查看全部评分

回复 使用道具 举报
/*if和seitch语句很像。
                具体什么场景下,应用哪个语句呢?
                如果判断的具体数值不多,而是符合byte short int char这四种类型;
                虽然两个语句都可以使用,建议使用swtich语句,因为效率稍高。

                其他情况:对区间判断。对结果为boolean类型判断,使用if,if的使用范围更广;
                */

评分

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

查看全部评分

回复 使用道具 举报
确实是老毕的原话
回复 使用道具 举报
清秋 黑马帝 2011-11-17 20:56:30
7#
有时候用Switch,程序可读性更强点
回复 使用道具 举报
咖啡 黑马帝 2011-11-20 12:12:42
8#
懂了,谢谢
回复 使用道具 举报
徐杨 黑马帝 2011-11-20 16:42:27
9#
swith 效率相对稍微高一点  如果是多分枝程序 建议用swith
但是swith 不是使用String传值  需用枚举封装后传递 *(前两天在这里学到的~呵呵)

评分

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

查看全部评分

回复 使用道具 举报
黄晓天 黑马帝 2011-11-20 18:22:48
10#
建议不用switch语句,

评分

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

查看全部评分

回复 使用道具 举报
ZHB 黑马帝 2011-11-20 20:25:43
11#
switch感觉目的性很强,if模糊,故目的性强的选择switch,模糊的选择if。

评分

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

查看全部评分

回复 使用道具 举报
程立彬 黑马帝 2011-11-23 13:39:10
12#
基本类型判断最好使用Switch,效率比较高,而且你不觉的嵌套了很多的 if else 是非常烦人吗

评分

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

查看全部评分

回复 使用道具 举报
所有的switch语句都可以用if语句来替换!!!

评分

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

查看全部评分

回复 使用道具 举报
if语句特点:
a,每一种格式都是单条语句。
b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。
c,条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false;
switch语句特点:
a,switch语句选择的类型只有四种:byte,short,int , char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种情况:遇到break,执行到switch语句结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
if == switch(应用范围比if小)
当你发现一个if elseif 里面使用的是byte、short、char、int、枚举的等值比较时,可以用switch替换!
三元表达式 if ... else 赋值操作 优先使用三元表达式!!!虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
李晓斌 黑马帝 2011-11-23 14:20:19
15#
if可判断具体的区间,且可判断布尔型;switch就不行了,区间一大的话,就要一个一个列出来了,相对来说就比if语句复杂多了

评分

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

查看全部评分

回复 使用道具 举报
赵燕燕 黑马帝 2011-11-23 17:20:10
16#
switch语句可以判断的数据类型是:byte、short、int、char型
if语句可以判断的数据类型是:byte、short、int、char、boolean型
当判断的类型是byte、short、int、char这四种时,如果知道具体数值并且个数不多时,就是使用switch,这样效率高。
当判断的是某个区间也就是数值个数较多或者是boolean型时,就使用if语句

评分

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

查看全部评分

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