黑马程序员技术交流社区

标题: if 和 switch有什么区别?什么时候用 if 什么时候用 switch? [打印本页]

作者: 我只追求完美    时间: 2015-3-10 23:11
标题: if 和 switch有什么区别?什么时候用 if 什么时候用 switch?
如题!!

作者: Dark县令    时间: 2015-3-11 02:02
这个区别大了去了,switch语句是并列判断的,例如:
switch(x)
{
        case 0:
                        System.out.println("1");
                        break;
        case 1:        
                        System.out.println("1");
                        break;        
        case 2:
                        System.out.println("1");
                        break;
         default:
                        break;

}
如果x=1.则直接执行程序2,执行结束后退出这个循环,不会再去判断x是否等于0或2。
而if语句是逐行判断的,条件成立则进入执行语句,不成立则判断下一个条件是否成立。例如:
if( x==0 )
{
        System.out.println("1");            

}
if( x==1 )
{
        System.out.println("1");           
}
if( x==2 )
{
      System.out.println("1");            
}
程序从上往下执行,先判断x是否等于0。如果条件不成立,不执行程序1,继续往下判断x是否等于1,成立则执行程序2。执行完毕后,继续判断x是否等于2,不成立,不执行程序3,继续往下执行别的程序。
而且if能判断区间比如:
if(x>1 && x<6)
{
      System.out.println("1");
}
而swith就不行!
希望对你有帮助
作者: waterfox    时间: 2015-3-11 03:20
简单的说,多个if判断变量的值的选择,为了节省空间和时间就选switch。如果进行多重判断,就选if
作者: 黑马小夏    时间: 2015-3-11 08:40
学习学习
作者: 2119391569    时间: 2015-3-11 09:05
if和switch语句很像
具体什么场景下,应用那个语句?
如果判断的具体数值不多,而是符合byte,short,int,char这 四种类型,虽然这两个语句都可以使用,建议使用switch语句,因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
不知道有没有帮到你,加油!
作者: 金康俊    时间: 2015-3-11 10:01
需要判断的条件有个很广泛的区间值时用if就是很合适的。
作者: 冯林01    时间: 2015-3-11 10:05
楼上说的很详细啊,受教了
作者: lostnotes    时间: 2015-3-11 13:59
对几个固定的值进行判断建议用switch,.     if 用于对具体值,区间值以及结果是boolean类型的表达式进行判断
作者: 执梦而行    时间: 2015-3-11 14:06
if与switch的区别:
if:1.对具体的值进行判断
     2.对区间判断
     3.对运算结果是boolean类型的表达式进行判断
switch:1.对具体的值进行判断
            2.值得个数通常是固定的
对于几个固定的值判断,建议使用switch语句,因为switch语句会把具体的答案都加载进内存,效率相对高一些




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2