ataehee 发表于 2017-3-12 14:56:52

for循环中嵌套for循环的疑问

在看鱼大的C语言视频,在讲到for循环中有一例子,如下:

#include <stdio.h>

void main()
{
      int i, j;
      for (i=1;i<=6;i++)
      {      
                for (j=1;j<=i;j++)
                {      
                        printf("*");
                }
      printf("\n");
      }
}


在进行单步调试时,发现嵌套中的for循环:for (j=1;j<=i;j++),在执行整个程序时,j的值是会从其他值初始化到j=1,直到j>i跳出该部分循环,但是i的值是一直自增的,并不会跳到此循环时重置i=1,请问这种情况是怎么造成的?求解答~

人造人 发表于 2017-3-12 15:21:29

本帖最后由 人造人 于 2017-3-12 15:22 编辑

能理解这个程序吗?

#include <stdio.h>

int main(void)
{
        int i, j;
        for(i = 0; i < 3; i++)
        {
                for(j = 0; j < 3; j++)
                {
                        printf("i = %d        j = %d\n", i, j);
                }
        }

        return 0;
}


i = 0   j = 0
i = 0   j = 1
i = 0   j = 2
i = 1   j = 0
i = 1   j = 1
i = 1   j = 2
i = 2   j = 0
i = 2   j = 1
i = 2   j = 2
请按任意键继续. . .

ataehee 发表于 2017-3-12 16:08:40

人造人 发表于 2017-3-12 15:21
能理解这个程序吗?

理解了,感觉如果i是天族,j是人族,i过完“一天”,j已经过完“一生”。

人造人 发表于 2017-3-12 16:14:43

ataehee 发表于 2017-3-12 16:08
理解了,感觉如果i是天族,j是人族,i过完“一天”,j已经过完“一生”。

^_^
页: [1]
查看完整版本: for循环中嵌套for循环的疑问