r0a*_*ach 0 c loops for-loop while-loop
我一直在尝试一些涉及循环的基本练习.
有人能告诉我为什么以下片段有不同的输出?
while (i<3)
{
while(j<3)
{
printf("(%d %d) ",i,j);
j++;
}
i++;
}
Run Code Online (Sandbox Code Playgroud)
产量
(0 0) (0 1) (0 2)
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("(%d %d) ",i,j);
}
Run Code Online (Sandbox Code Playgroud)
产量
(0 0) (0 1) (0 2) (1 0) (1 1) (1 2) (2 0) (2 1) (2 2)
他们不应该有相同的输出吗?
小智 15
尝试:
while (i<3)
{
j = 0;
while(j<3)
{
printf("(%d %d) ",i,j);
j++;
}
i++;
}
Run Code Online (Sandbox Code Playgroud)
在你的代码中,发生的事情很简单 - 对于第一个循环,i = 0,j = 0,1,2,3,对于第二个i = 1,j = 3 ......
在while循环开始之前,您不会重新初始化变量,就像在for循环中一样.试试这个:
i = 0;
while (i<3)
{
j = 0;
while(j<3)
{
printf("(%d %d) ",i,j);
j++;
}
i++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |