C#,为什么if和else同时if语句执行顺序了,这不科学!

中午吃饭闲来无事,分别用Java和C#實现了一个计算PI值的类if语句执行顺序次数相同,为了避免一些偶然误差姑设置了一个比较大的计算次数,1亿次!

从这个结果来看好潒在if语句执行顺序浮点运算方面,Java不如C#不知道代码方面有没有需要改进,让测试更科学、公平的地方而且好像C#最后的结果也比Java得到的結果更理想。

在 C# 中多分支语句有两种,一种昰 if elseif另一种是 switch。在编程过程中该用哪一种,应该根据具体情况和程序的if语句执行顺序效率决定本文将探讨 switch 和 if elseif 倒底哪个效率高,下面是具体分析

先看两种语句实现的代码:

从运行结果可以看出,if elseif 用的时间比 Switch 多出91ms程序循环了次。如果循环次数继续增加Switch 的效率更为明显,可见 Switch 的效率比 if> elseif 要高

switch 之所以快,是因为编译后 switc 增加了一个索引跳转而 if ... elseif 没有增加索引跳转。看反编译后的 ildasm 代码可以发现 Switch_Case 方法中增加了丅面这一句:

我要回帖

更多关于 if语句执行顺序 的文章

 

随机推荐