我有两个循环。我不明白为什么第一个比第二个跑得快。你能尽可能简单地解释一下吗?
首先:
for (int x1=0;x1<1000;x1++){
for(int x2=0;x2<1000;x2++){
if(x1<500){
a[x2+x1*1000]=100;
}
}
}
第二
bool cond;
for (int x1=0; x1<1000; x1++) {
cond = x1<500;
for(int x2=0; x2<1000; x2++){
if(cond){
a[x2+x1*1000] = 100;
}
}
}
(我简化了我的代码)
答案 0 :(得分:0)
最简单的答案是当你使用
时if(x1<500){
a[x2+x1*1000]=100;
}
你实际上使用的是直接方法,在这种方法中,比较值并完成工作,但是当你使用
时if(cond) {
a[x2+x1*1000] = 100;
}
然后它首先计算“cond”的答案,然后应用if条件,更具体地说,你可以把它当作cond是一个函数调用,并且if(x1 <500)是main()中的简单比较。 希望你得到你的答案,如果你想知道关于这个主题的任何其他事情告诉我:)