关于for循环
int i, j, k;for (i = 0; i < 2;i++)
for (j = 0; j < 2; j++)
printf("%d,%d\n",i, j);
输出结果是
0,0
0,1
1,0
1,1
求指导为什么J=1后 还会存在1,0的,有大神能帮解释一下循环口径吗。
小甲鱼视频写的是从第二个for先执行,本人理解答案应该是:
0,0
0,1
1,1
求大神科普一下咯 int i, j, k;
for (i = 0; i < 2;i++)
{
for (j = 0; j < 2; j++)
}
能否理解为这样的情况呢 本帖最后由 jackz007 于 2019-2-19 13:11 编辑
外循环 i = 0:
内循环 : j = 0 , j = 1
外循环 i = 1 :
内循环 : j = 0 , j = 1 因为在for(i=0;i<2;i++)进行第二次循环后
for(j=0;j<2;j++)又重新开始循环,所以它会把j初始化,即j=0; 我去,这是C语言吗 循环嵌套都是先里面后外面,等到外面的时候,里面又从零开始的
int i, j, k;
for (i = 0; i < 2;i++)
for (j = 0; j < 2; j++)
printf("%d,%d\n",i, j);
可以分解为
i = 0;
i < 2;
j = 0;
j < 2;
printf(0,0)
j = j + 1;
j < 2;
printf(0,1)
j = j + 1;
j == 2;
i = i +1;
i < 2;
j = 0;
j < 2;
printf(1,0)
j = j + 1;
j < 2;
printf(1,1)
j = j + 1;
j == 2;
i = i +1;
i == 2;
如果满意的话给个最佳答案呀 先执行外循环一次,再把内循环全部执行完,然后再执行外循环一次,再把内循环执行完
你可以这么理解:
先运行for (i = 0; i < 2;i++)
其中运行表达式for (j = 0; j < 2; j++)一次
表达式for (j = 0; j < 2; j++)结束后,内存释放
继续运行for (i = 0; i < 2;i++) 循环一次,就又回到第二行所说
你可以设置断点监控i,j的变量值 这是for的嵌套使用,当外面的for循环条件成立,就进入里面的for循环,直到里面for循环不成立,再跳出里面的循环,再继续判断外面的循环,直到外循环不成立。你理解有一点错误,因为每次 j 都是被初始化0 哦,具体是先i=0,i<2成立,然后在执行j=0,j<2成立,所以打印i=0,j=0,然后继续执行里面的循环直到不成立跳出,j=1,j<2成立,打印i=0,j=1,再而j=2,j<2不成立,跳出里面的循环,然后就是i=1,j=0 ;i=1,j=1。你如果前两个能理解的话,后面应该是看错了而已。 这是C语言吧
页:
[1]