<script type="text/JavaScript"> </script> <script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>
在我刚开始写程序的时候,我很喜欢写 if(){...}else if(){...}else{...},所以导致我的程序看上去都是if语句,曾经也有人给我提过,但是我却不以为然,心想怎么都能实现,程序何必搞得那么花哨呢,开始鄙视人家,但是。。当我尝试用switch的时候,我才发现,我犯一个很大的错误,程序不单是讲究准确的,而且还是要讲效率的!
下面我就来针对这两种不同的流程控制语句进行一个比较:
我们首先来说一下 if语句,if语句是大家可能接触的最早,也是最先掌握的流程控制语句,因为它比较符合我们的顺势思维逻辑:举一个很简单的例子:
if(A>B)
{A=B;}
else
{B=A; }
这是一个很简单的,也是很经典的if语句,如果将这个例子放在switch 语句中,也并不是不能实现,但是实现起来可能会比较麻烦一些,因为在switch语句中case中要求的是常量,一般是不能进行逻辑判断的, 所以这也是if语句优于switch语句的地方!但是如果您判断的都是几个常量的数据,我建议您最好采用switch语句,如下:
switch(A)
{
case:xxxx
///程序代码
break;
case:xxxxxx
///程序代码
break;
}
这样的语句,虽然if语句也是能实现的,但是性能就比switch差的有点远了,大家写程序的,都有过数据库架构的经验,我们在架构大数据量的数据时,一般是要考虑索引的,我们为什么要考虑索引呢,至于这一点我就不用跟大家多说了吧?关于数据库的索引我会单独写一篇文章跟大家一起探讨!在我看来,switch语句是直接定位的,在我看来跟索引有很多相似的地方,这就是微软的作品的相似之处吧!直接定位的 Switch语句应该比if语句的性能优越多少,大家应该可想而知了吧?尤其是对于“字符串”的比较可能效果会更明显!对于更深入的探讨,我希望大家能给我补充上来,也能让我们大家一起学习与探讨。。。
最后也希望我们广大的程序员们要善于探索、发现新的知识,不断总结,不断的进行自我提高与完善 !
支持原创~~~
在我发表本篇文章后,由很多人已经开始怀疑了,我已从网上找到了一篇很好的文章,并将它转载了下来,这篇文章我也具体的看了,写的确实不错,也证实了我上面的推论是正确的:
文章地址: http://www.cnblogs.com/yeah/archive/2009/02/16/1392094.html <script type="text/JavaScript"> </script> <script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>
转自:http://www.cnblogs.com/yeah/archive/2009/02/16/1392077.html