6多个for循环

Posted 写博客是第一驱动力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6多个for循环相关的知识,希望对你有一定的参考价值。

给衣服和裤子配色

char yifu [] = {"蓝色","黑色"} 

char kuzi  [] = {"黑色","牛仔色"}

这时候, yifu[0] 就代表蓝色了, yifu[1]就代表黑色了

for ( i =0 ; i<=1;i++)

{

  for(j=0;j<=1;j++)

}

到此为止,两个for循环,先进行第一个for循环,给i取一个值,i固定这个值不动,遍历完j的取值,再改变i的取值,再遍历j的取值

 

简单理解:两个for循环可以解决排列组合问题

 

知识:

      

  for中的条件判断不成立的时候,循环才算完成,跳出循环,否则跳不出

 

 

 执行顺序是

假如2和5成立: 1 2 4 5 6 5 A 6 5 A 6 5 A 6 5 A 6

  直到5不成立: 5不成立才第一次执行3

小结:只有for循环控制的语句执行完毕之后,才会重新回到循环,处理计数器

  如果5一直成立,那么第一个for循环控制的语句就一直不会结束,那么就一直不会回到第一个循环

 

例子1:假设控制的部分可以卷起来,下列例子有几行

 

 

 

 

 

 

 for(4;5;6)

  A;

被卷起来了

剩下for(1;2;3) ..

  B;

所以有本质上这只有两个语句

 

例子2:假设控制的部分可以卷起来,下列例子有几行

 

 

 

 for(4;5;6)

{

  A;

  B;

}

被卷起来

只剩下for(1;2;3) ..

所以只有一个语句

 

 

例子3:假设控制的部分可以卷起来,下列例子有几行

 

 

 

 

只剩下for(7;8;9)

 

 

 

例子4:假设控制的部分可以卷起来,下列例子有几行

 

 

 

 

答:卷起来后只剩下for (i=-1;i<2;i++)..

 

 

  相当于下面的操作都是在i=-1的基础上执行的,下面的都执行完毕,计数器i的值才发生改变

    先定住i,进行下面的操作.    下面的操作全部结束之后,再改变i

例子5: i 从 1 取 到3 ; j 从 1 取 到 2

打印出a[i][j]的所有可能


for(int i = 1;i<=3;i++)
{

  for(j=1;j<=2;j++)
  {  

    printf("%d ",a[i][j]);

  }

}

结果就是 a[1][1]  a[1][2] 

 

例子6:求输出结果,比较难

int main(void)

{

       int i, j;

 

       for (i=0; i<3; ++i)

       {     

              printf("111!\\n");

              for (j=2; j<5; ++j)

              {

                     printf("222!\\n");

                     printf("333!\\n");   

              }

              printf("444!\\n");

       }

 

解答:for(i=0;i<3;++i)下面的语句都可以收起来,因为它们都归第一个for循环管的

接下去按从上到下执行语句

111

22233连续打印三次才跳出第二个循环

444

打印完444,第一个循环控制的循环体结束,回到第一个循环的计数器,i+1

继续

111

222333连续打印三次

444

循环体结束,第一个计数器加1

111

222333连续打印三次

444

循环体结束,回到第一个循环,计数器加1,判断计数器,不满足条件,跳出第一个循环

 

以上是关于6多个for循环的主要内容,如果未能解决你的问题,请参考以下文章

具有多个条件的 for 循环向量化

JS中for循环多个变量的判断原理

lua for循环。。。如何记录满足条件的输出的次数

在一个for循环里对多个列表进行迭代

如何在没有for循环的情况下引用数组的多个索引值?

两个嵌套for循环的执行顺序