C-嵌套用于循环-不理解行为



对不起这个noob问题,我试过阅读其他问题和答案,但我就是不明白。我不明白嵌套for循环中的执行逻辑。ef

for (int i = 0; i < n; i++)
{
for (int j = 0; j < i; j++)
{
printf(" ");
printf("second");
printf(" ");
}
printf("first");
}

n=4:时的输出

first second first second  second first second  second  second first

我不知道为什么输出是第一、第二,然后是第二秒。

有人愿意解释一下吗?我试着盯着屏幕看了2个小时,并阅读了谷歌在嵌套循环流程图上的4个第一点击,它太复杂了。。

感谢

编辑:正如Weather Vane建议的那样,我在"第一个"后面加了一个,使它更清晰。

现在输出为:

first
second first
second  second first
second  second  second first

对于外循环的每次迭代(4次迭代,i03不等(,内循环迭代i次(j0i-1不等(。

因此,对于第一次迭代,内环运行0次,因此在printf("first")之前没有输出,然后第二次迭代导致内环运行一次,并在printf("first")之前输出second,等等。

  • 第一次迭代:CCD_ 12
  • 第二次迭代:CCD_ 13
  • 第三次迭代:CCD_ 14
  • 第四次迭代:CCD_ 15

最新更新