考虑以下2种情况:循环时花费更多;分配还是if语句?
boolean b = false;
int i = 0;
while(i++ < 5) {
b = true;
}
OR
boolean b = false;
int i = 0;
while(i++ < 5) {
if(!b) {
b = true;
}
}
哪个更 “昂贵”,怎么办?如果答案取决于使用的语言/编译器,请提供。我的主要编程语言是Java。
请不要问我喜欢为什么要这样做的问题..他们只是指出相关的准系统示例:如果变量在循环中一次又一次地设置相同的值,或者应该是在每个需要更改值的环路上进行测试?
可能重复的[如果Thens更快,然后乘法和赋值?](http://stackoverflow.com/questions/4024201/are-if-thens-faster-then-multiplication-and-assignment) – 2010-10-28 13:44:31
如果我记得我的编译器类正确,由于http://en.wikipedia.org/wiki/Branch_predictor这些都将出现大致相同。我认为第一次需要多一点时间才能完成分支,但之后编译器可以进行预测并相应地进行调整。 – 2010-10-28 13:48:03
在这里你会发现许多答案http://www.agner.org/optimize/optimizing_cpp.pdf – ruslik 2010-10-28 13:57:12