C中两个for循环之间的差异?

时间:2013-07-02 16:35:26

标签: c

之间有什么区别
for(i=0;i<n;i++) printf("Hello");

for(i=0;i<n;) printf("Hello");

我已经看到了在多个地方使用的两种类型的代码,但无法找出差异。

5 个答案:

答案 0 :(得分:3)

我看到的唯一区别是“i ++”部分。这会在第一个循环中递增i,但在第二个循环中不会递增。除非n <= 0,否则第二个循环将永远不会结束。这称为无限循环

我强烈建议您阅读更多关于C:

的循环

http://www.tutorialspoint.com/cprogramming/c_loops.htm

http://www.codingunit.com/c-tutorial-for-loop-while-loop-break-and-continue

答案 1 :(得分:1)

第二个没有事后补充。它是可选的,但大多数时候你在那里更新索引。

答案 2 :(得分:0)

没有i ++的人会永远奔跑。没有什么可以增加它来达到它的最终条件。

答案 3 :(得分:0)

第二个代码没有i++。这意味着它在迭代期间不会改变索引变量i

第一行

for(i=0;i<n;i++) printf("Hello");

可以翻译成

int i=0;
while(i<n)
{
 printf("Hello");
 i++;
}

而第二个

for(i=0;i<n;) printf("Hello");

会转换为

int i=0;
while (i<n)
{
 printf("Hello");
}

由于i没有改变,它将无限循环

答案 4 :(得分:0)

for(i=0;i<n;) printf("Hello");除非您明确修改循环体中的i,否则此代码永远不会终止。

for(i=0;i<n;){
i++;
printf("Hello");
}

将是一个有效的永久终止循环。