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循环的主要内容,如果未能解决你的问题,请参考以下文章