考慮以下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