C语言中的for循环解释

时间:2017-09-25 06:15:37

标签: c loops

我在C中看到一个for循环:

for (i=myid; i < NUM_STEPS; i += nprocs)

让我们说吧 myid = 1; NUM_STEPS = 5; nprocs = 3;。 现在我开始for循环,我想知道解释是否正确:

第一次迭代:i = 1 + 1 = 2

第二次迭代:i = 2 + 1 = 3

现在i达到nprocs的值,for循环结束。

3 个答案:

答案 0 :(得分:2)

第一次迭代:

i = 1

第二次迭代:

i = 1 + 3 = 4

然后:

i = 4 + 3 = 7

大于5,因此不会执行循环。

答案 1 :(得分:2)

for (i=myid; i < NUM_STEPS; i += nprocs) {
    // ...
}

装置

i = myid;
while(i < NUM_STEPS) {
    // ...
    i += nprocs;
}

在您的情况下,您有两次迭代:i = 1i = 4

答案 2 :(得分:1)

for (i=myid; i < NUM_STEPS; i += nprocs)

此处,第一次迭代i1并检查条件

= i <  NUM_STEPS 
= 1 < 5
= true

然后执行循环体。完成第一次迭代后,控制转到for循环增量语句。

= i+=nprocs
= i = i + nprocs
= i = 1 + 3
= i = 4

现在我在第二次迭代中变为4,条件变为true

= i <  NUM_STEPS 
= 4 < 5
= true

然后执行循环体。完成第一次迭代后,控制转到for循环增量语句。

= i+=nprocs
= i = i + nprocs
= i = 4 + 3
= i = 7

现在我在第二次迭代中成为7,条件变为false

= i <  NUM_STEPS 
= 7 < 5
= false