其实是一样的,判断的条件的多少和你编码的位置有一定关系呀!
eg:
swith(i)
{
case 1: ...
break;
case 2: ...
break;
}if(i == 1) ...
else
if(i == 2) ...

解决方案 »

  1.   

    在较多需要判断的条件时,用switch比较容易阅读和书写
      

  2.   

    最主要的是在编译成的代码中,if的效率通常要比较低,if的层次越多,效率越低
      

  3.   

    switch 是有符合条件的就跳出?你不写break;怎么会跳出?if else if要每个条件都判断一遍? 你可以控制的,不让他判断某些条件!
      

  4.   

    用switch比较容易阅读和书写
      

  5.   

    用switch比较容易阅读而且效率要好一些,前提是if 语句比较多的情况下
      

  6.   

    switch/case用的是二分查找,N的条件跳转只需要最多Log(N)个判断;if/else在同样条件下需要N个判断。
      

  7.   

    个人觉得要判断多的话还是用switch 好,,结构性好比较容易阅读
      

  8.   

    switch 效率高一些,也好读一些
      

  9.   

    我觉得本质上没有什么区别不过,如何分支多的话,switch看起来,清晰一些
      

  10.   

    switch的case条件只能是常量,if…esle…的可以不是常量的。另外,楼主所说的也是不正确的,if…esle…在找到满足的条件后不会继续执行下一个条件
      

  11.   

    还有一点是switch结构中可以用goto这种老掉牙的玩意儿
      

  12.   

    没什么区别。
    主要就是看判断的条件是不是很多。如果很多就用swith,否则就有if…else…
      

  13.   

    ========以下是我老板的理解.
    http://ehome.hifly.to/showthread.php?s=&threadid=1020
      

  14.   

    顺便说一下,大家可以看到这里只有
     qqchen79(知秋一叶 [MS MVP]) <五星上将> 才能回答出来啊.高手太少了啊!
      

  15.   

    一般对比比较多但对比后处理比较少的用switch对比后要进行相当处理的采用if