日期:2014-05-20  浏览次数:20905 次

讨论case和if语句的区别
大家好啊!小弟有一些东西不太明白,希望和大家讨论一下,不知道正确不,多给点意见,也让更多的人了解一下。
1.使用case语句和if语句他们的处理方式是怎么样的一个过程?
(我做个一次测试,case语句要比if语句快,不知道是否如此)
2.case语句是否具备if语句的所有功能?
  (好像if语句能做到的,case语句就能做到)
3.case语句和if语句的本质区别是什么?
4.用case语句的长处和if语句的长处各是什么?
5.是不是所有的if语句都可以用case语句代替?
6.如果符合上述所有条件,为什么还要if语句?

如果有关更多if语句和case语句的东西,请不吝赐教!!!


------解决方案--------------------
5.是不是所有的if语句都可以用case语句代替?
2.case语句是否具备if语句的所有功能?

应该不行。
------解决方案--------------------
写法应该差不多吧,case肯定功能强点,但是有些地方能用if肯定用if,至少结构简单,清晰
------解决方案--------------------
1.case是比if要快

2.在判断的条件数可知的情况,可以一一列举出来,这时可以用case,判断条件数不可知时可用if

3.可知判断的条件数超过3个或3个以上可使用case,结构清晰.
------解决方案--------------------
如果在岔路多余三以上,应该选择case

但,switch的 做比较的类型,有限制. 只能是值类型 和 string, if却没有

而且,switch 内 支持goto 语句, 可以在case 之间灵活跳转

------解决方案--------------------
关键是要看 switch 后的变量和if 要比较对象,只要经过合适变换,楼主所提的可能与否,便全可回答为yes
------解决方案--------------------
if和case的最大区别在于:
if..else..是否是否多个是否判断问题,而case是从多个可能的情况中选择一种的问题。
因此在多种情况下选择其中一种的话,应该是case来的快。
因此什么时候用case、什么时候用if是很显而易见的。
------解决方案--------------------
灵活使用就行了
------解决方案--------------------
if和case其实是一样的,翻译成机器码是一样的
------解决方案--------------------
关注一下!
------解决方案--------------------
case 谁搞个例子出来看看 偶初学
------解决方案--------------------
switch能做的if一定能做,反之则不成立,
比如if(object1==null){//DoSomeTing();}
这个就无法用switch结构来写,一般分支比较多的话,该用switch
比较明了,当然更好的是使用设计模式有些时候可以用职责链来实现.
------解决方案--------------------
case 在处理多路问题(大于3)应该比if易读,但if在更多的时候使用上应该比if方便。翻译成机器代码应该一样吧?(哪位大虾知道)
------解决方案--------------------
关注
------解决方案--------------------
up
------解决方案--------------------
呵呵,好像能用switch来写哦,看嘛
object ob = new object();
switch (ob == null)
{
case true:
{
break;
}
default :break;
}

if(ob==null)
{
//
}
else if(ob.Equals(object1))
{
//
}
else if ......

switch还能写么,能写出来,拜你为师,呵呵