为什么结果是7 ???我找不到日志:(
#include <stdio.h>
main() {
int i, j, a = 1, b = 1;
for (i = 1; i < 4; i++)
for (j = 1; j < 3; j++)
a = a + b;
printf("a=%d", a);
}
答案 0 :(得分:2)
结构如下所示
- Outer `for` loop
- inner `for` loop
- instruction
所以“指令”(语句/块)将执行内部for
循环计数次数,用于外部for
循环计数次数。
基本上说的是,将b
的值添加到a
的最新值(以重复方式)以获取a的当前值。现在,为“外部”时间做这个,为此,对“内部”次数做同样的事情。
外for
循环==&gt; 3次,
内部for
循环==&gt; 2次
因此,最终价值= 3*2 (increment)
+ (initial)
= (3*2)*1 + 1
= 7
。
答案 1 :(得分:1)
结果为7,因为b初始化为1并且整个时间保持为1。外循环运行3次(1,2,3),内循环运行2次(1和2),因此有6次运行,其中b被添加到a(初始化为1)。 1 + 6 = 7。
答案 2 :(得分:1)
在这种情况下,您应该添加监视并逐行调试代码。我相信快捷方式是F11。关于为什么你的代码输出是7 ... 内循环运行六次。 J循环两次 - 1,2,(当它是3时结束),并且我循环三次(1,2,3,4 - 结束)......总共2 X 3 = 6.
由于b是&#39; 1&#39;,您基本上将数字1加到六次。由于以&#39; 1&#39;开头,输出为:
a = 1 + 1 + 1 + 1 + 1 + 1 + 1 = 7