if语句与switch之运行性能比较

<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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值