【发布时间】:2015-03-29 15:01:08
【问题描述】:
我想知道哪个更有效。
假设我有这个代码:
while (i<10000){
if (cond1)
doSomething1();
else if (cond2)
doSomething2();
else
doSomething3();
}
现在 cond1 和 cond2 是“恒定”条件,这意味着如果它为 i 发生一次,它将发生在所有这些条件中,并且只是其中一个他们可能是真的。
大多数时候,最后一个doSomething3() 会被执行。
如果我这样写会发生什么:
if (cond1){
while (i<10000)
doSomething1();
}
else if (cond2){
while (i<10000)
doSomething2();
}
else{
while (i<10000)
doSomething3();
}
因为我只检查一次 cond1 和 cond2 是否更有效?
【问题讨论】:
-
第二个 sn-p 更省时。
-
我注意到
i应该有一些增加或以其他方式改变的东西,但这对于这个问题来说大多无关紧要。 -
只要根据if-else条件定义一个函数指针,然后while循环就可以了。
标签: c++ c performance