c - for 循环 - 为什么打印 12 而不是 3?

标签 c loops for-loop iteration

我有以下代码:

#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只是第一个循环和 13 ( 0 <= x < 31 <= 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/

相关文章:

c - 在 Linux 内核中实现正确的模块间同步

c - 使用嵌套的 printf 语句给出奇怪的输出

c - 使用二分搜索在排序数组的正确位置插入一个元素以找到正确的位置,但是出现运行时错误

Javascript循环和构建数组但变量索引未定义

javascript - 在循环中调用 setTimeout 函数

c++ - OpenCV:我是否超出了矩阵大小?

python - 使用已弃用的 Numpy API

c - (C编程)逐字符读取文本文件并删除点和逗号前的空格和连字符

ruby-on-rails - 防止未定义的链式方法

java - 在 For 循环中执行递归