我有以下代码:
#include <stdio.h>
int main()
{
int result = 0, x, y;
for (x = 0; x < 4; x++) {
for (y = 0; y < 3; y++) {
result++;
}
}
printf("%d", result);
return 0;
}
这会打印12
。为什么它打印12
?
如果我一步步检查它,当 y
位于 3
时,似乎应该停止添加 1
到结果,所以循环迭代了3次。 (或者如果我计算错误,它应该打印 2。)
最佳答案
整个循环中变量的值如下:
x y result
----------
0 0 1
0 1 2
0 2 3
1 0 4
1 1 5
1 2 6
2 0 7
2 1 8
2 2 9
3 0 10
3 1 11
3 2 12
这就是为什么 result
最终是 12
.
获取3
你应该增加 result
只是第一个循环和 1
至3
( 0 <= x < 3
或 1 <= x <= 3
):
#include <stdio.h>
int main()
{
int result = 0, x, y;
for (x = 0; x < 3; x++) {
result++;
}
printf("%d", result);
return 0;
}
关于c - for 循环 - 为什么打印 12 而不是 3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524010/