1. for循环
1.1格式:
for(表达式1;表达式2;表达式3)
{
语句块;
}
1.2表达式作用:
各表达式作用:
表达式1:循环从什么地方开始
表达式2:循环到什么地方结束
表达式3:从开始到结束怎样变化若要忽略各表达式:
1.若要忽略表达式1,因该for循环之前给循环变量赋值。
2.若要忽略表达式2,循环会陷入死循环。
3.若要忽略表达式3,因该再循环体中添加使循环变量值改变的语句。
4.若要忽略表达式1,2,3,不可以忽略()中的两个 ';' 。
1.3执行步骤
先执行表达式1,2,再执行循环体,最后循环执行表达式2,3。
2.for循环嵌套
2.1格式:
格式:
for(表达式1;表达式2;表达式3)
{
for(表达式1;表达式2;表达式3)
{
语句块;
}
语句块;
}注意:若要忽略写某部分表达式,注意看其规范要求。
2.2特点:
外循环执行一次,内循环全部执行一次
2.21eg:
3.忽略表达式1问题
3.1首先我们来看一个忽略表达式一的代码
从上面的代码输出,我们发现了问题,明明定义了 ‘ i ’ 从0开始循环到3,为什么 i 刚循环到0,还没循环i=1,就结束循环了呢?
带着这个问题我们去分析问题,看看循环是哪里出问题。
通过上面的代码,我们在内循环下面再添加一个printf, 一是用来打印信息,二是用来分析程序能否正常运行到这里。通过结果不难分析出,i是正常循环的,并没有出现上面的i不循环,反而是k恒等于4,不进行变化 ,此时k=4不满足内循环表达式2 ‘k<=3’ ,也就是说内循环没有执行,那么接下来我们来分析一下为什么内循环不进行循环了。
通过上述代码,我们发现循环正常了,但我们还是忽略了表达式1,为什么现在就可以正常输出了呢?
通过上述代码,分析可知,我们修改了int k=0 的位置,把它放进了第一个for循环里面,第二个for循环(内循环)的外面,然后代码就正常输出了,这是为什么呢?
前面的代码执行我们知道,当把int k = 0,放在第一个for循环外面时,循环执行完,i正常进行循环,而k一值恒等于4。那为什么恒等于4之后,k就不改变了,我们不是给其赋初值了嘛,我们是给其赋初值0了,但那是在第一个for循环外面,在进行for循环嵌套时,外循环执行1次,内循环全部执行一次,当i=0时,内循环执行时,当执行到k=4时不满足条件,跳出内循环,准备进行下一次外循环,可当i=1时,内循环k=4,不满足再次循环k<=3的条件,故内循环无法执行,为了内循环可以正常执行,必须给k再次赋值为零,只有再次赋值为零,满足内函数的循环条件才能继续执行,当我们把k=0放在内循环上面,当每次外循环进行循环遍历时,会再次把赋值把k=0,即将k==4,修改为k==0,赋值结束后k满足条件,即可正常进入循环。
3.2牛刀小试
for循环注意循环条件,要完成全部遍历
3.3总结:
初始化表达式时,因该在循环外面进行循环变量的初始化定义
也就是说若for循环需要忽略表达式一,需要注意注意检测循环是否全部执行,注意表达式1忽略时,必须在for循环外面进行初始化,避免嵌套时不满住for循环执行条件2无法循环;文章到这里就结束了,如果觉得本文对你有收获的话,记得一键三连哦!!!