if语句用于指令

时间:2017-12-27 16:01:58

标签: c++ for-loop if-statement time

编辑:n是常数。它在循环内部没有变化。

考虑到2个案例:

1)

if (n % 2 == 0)
    for(i = 1; i <= 10; i++)
             ...
else 
    for(i = 1; i <= 9; i++)
             ...

2)

for(i = 1; i <= 9 + (n % 2 == 0); i++)
          ... 

两种情况之间的时间有差异吗? (案例2)如果n是偶数(或只是一个附加条件),则验证每一步应该使程序运行得慢一点,我是否正确?

1 个答案:

答案 0 :(得分:4)

  

验证每一步,如果n是偶数(或只是一个附加条件),运行程序会慢一点,我是否正确?

一般情况下是,在这种特殊情况下,它取决于你是否可以更改n内部循环和什么是n,即编译器可以检测到n是否可以更改或不优化它。所以你应该为读者和编译者明确你的意图:

auto limit = 9 + (n % 2 == 0); 
for(i = 1; i <= limit; i++)
      ...