C语言中多个for执行的顺序是什么
发布网友
发布时间:2022-04-24 20:26
我来回答
共5个回答
热心网友
时间:2023-10-09 20:50
假如是 for(i=1;i<=3;i++)
for(j=1;j<=2;j++)
for(k=1;k<=2;k++)
我就这样简写了啊,他是这样执行的:先是i=1,j=1,k=1,循环完一次之后,k加1,然后是1,1,2(按照i,j,k的顺序)。循环完之后,k接着加1,是1,1,3,不满足,第三个for循环结束,向上走,J加1,,循环结果是1,2,,1.记住,此时K又回到1,再执行K的循环。那下面就是1,2,2
等到J加到3时,不满足条件,i要加1循环结果为2,,1,1。J、K又变为一,再循环。2,1,2 2,2,2 3,1,1, 3,1,2, 3,2,1 3,2,2
所以总的循环结果为
1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
2 1 2
2 2 1
2 2 2
3 1 1
3 1 2
3 2 1
3 2 2
不知道您有没有看懂,有问题再追问吧。
热心网友
时间:2023-10-09 20:51
看你怎么写了,如果是for(){} 。。for(){}。。for(){}则是顺序执行,如果for(){ for(){} }即for中含有for,则是外层的for循环一次,内层的循环完,然后外层循环变量+1,内层再循环完,直到外层的循环条件不成立为止。
热心网友
时间:2023-10-09 20:51
最开始进入的是第一层for循环,在进入第二层for循环,一直到最后一层for循环执行完,再返回上一层for循环一次,进入下一层循环,一直到所有循环结束。
eg:
for(int i=0;i<5;i++)
{ for(int j=0;j<5;j++)
{
for(int l=0;l<5;l++)
printf("%d ",l);
printf("\n");
}
printf("\n");
}
/*这里是3层循环,第一次是i=0,j=0,l=0,一直l=4;在返回j=1,l=0,一直到l=4;再返回上一层循环,直到j=4;再返回i=1,直到i=4结束整个循环,结果就是循环125次:
(最外层是是对应5组,第二层是对应25行,第三层是对应0—4)*/
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
热心网友
时间:2023-10-09 20:52
首先对于您的这个问题,,我有一点不清楚,能完善么?
for(.....){
A
B
for(....){
B
C
}
}
请问你的语句是这个形式的么
执行的顺序是从上往下执行的,也就是说先执行第一个for输出AB,然后再执行第二个for
输出BC,然后一直执行第二个for的代码 知道不满足条件了,在去执行第一个for里的代码
现在 我假设第一个for要循环3次,第二个for要循环2次,那么输出的代码就是
AB BC BC.. AB BC BC... AB BC BC---> 通过这个例子 你是否清楚一些了吧 如果还不清楚的话, 可以私密我
再详细的为你解答
热心网友
时间:2023-10-09 20:52
for(int i = 0;i < 100;i ++)
{
for(int j = 0;j <100;j ++)
{
array[i][j] = 0;
}
}
执行顺序是先array[0][0]=0;==》array[0][1] = 0;。。==》array[0][99] = 0;然后再array[1][0] = 0;array[1][1] = 0..就这样下去,其中注意continue和break;是相对于第一层循环用,像
for(int i = 0;i < 100;i ++)
{
for(int j = 0;j <100;j ++)
{
if(j = 3)
continue;\\或者break; 那样下面的array[i][3],并没有赋值
array[i][j] = 0;
}
}