有人可以解释一下这两个for循环代码之间的区别吗?
代码1:
int j = 0;
int i;
int n = 8;
for (i = 0; i < n; i++){
printf("Value if I: %d\n",i);
while (j < n){
printf("Value of J: %d\n",j);
j++;
}
}
}
输出:
i = 0 , j = 0,1,2,3,4,5,6,7
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
代码2:
int i;
int n = 8;
for (i = 0; i < n; i++){
printf("Value if I: %d\n",i);
int j = 0;
while (j < n){
printf("Value of J: %d\n",j);
j++;
}
}
}
输出:
i = 0 , j = 0,1,2,3,4,5,6,7
i = 1 , j = 0,1,2,3,4,5,6,7
i = 2 , j = 0,1,2,3,4,5,6,7
i = 3 , j = 0,1,2,3,4,5,6,7
i = 4 , j = 0,1,2,3,4,5,6,7
i = 5 , j = 0,1,2,3,4,5,6,7
i = 6 , j = 0,1,2,3,4,5,6,7
i = 7 , j = 0,1,2,3,4,5,6,7
为什么上述两个for循环代码之间存在差异?
最佳答案
在第二个代码中,您每次在 while 循环之前都会重置 j,因此您可以获得 i 的每个循环的 j 的所有值。 在第一种情况下,一旦达到 j=8,就不再重置该值,因此每次检查 while 条件时,它都会返回 FALSE,并且不再打印它。
关于C - for 循环代码之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34083347/