关于for循环和while循环的深入理解 —— konux
很多新人弄不懂for循环和while循环的用法,在这里特地做一个解释
for循环:
上面这玩意就是for循环
首先我们来讲讲循环到底是个啥?
循环其实就是重复运行某个动作组,如果有重复的动作需要运行,一些萌新可能会这么写:
这就是在一个区域内放10个随机位置的墙,但这样写很显然非常麻烦且不简洁
所以引入for循环就可以这样写,这种写法的效果和上面的等价
看!是不是简洁且省力不少?
ic循环的组成:
循环分为两个部分:循环体和循环动作
循环体就是上图中的函数,这个函数提供了一个全局变量 i 和类迭代器【后文介绍】
循环动作就是循环中要执行的动作,如上图中的创建墙1
for循环用程序(C++)表示是这样的:
for(int i = 0; i < 10; i++)
{
//这里写循环中的动作;
}
当然了,看到代码也不用怕,这里只是为了让你清楚具体的原理,我们后面将一步步分析
首先看括号内部的第一句【int i = 0】,指的是创建一个整数变量 i 并给其赋一个初值为0(什?不知道变量?建议去看文档中的变量教程)
第二句【i < 10】,这里是循环体的运行条件,即当i < 10这个条件满足时,就会执行循环,若一旦 i >= 10,那么循环就会跳出来,从而循环终止
第三句【i++】,这句话表示变量 i 自增 1 ,即 i = i + 1 ,且这个语句会每循环一次就运行一次(在循环条件满足的情况下)
函数运行逻辑:
还是使用这个图,你需要记住,下标从0到 n 表示这个循环执行 n 次
那么为什么会这样呢?为什么不是n + 1次?或者n - 1次?
我们直接过一遍程序的运行逻辑就明白了
首先程序运行到这个for循环,然后就会有一个变量 i ,它的值刚开始为0
循环第1次:然后直接运行下面的创建墙1的动作
接着 i 会自增1(【类迭代器】如果 i 从下标 a 到下标b,且a > b,那么i 会自减1),即 i 变成了0+1,然后判断 i < 10是否成立,若成立则运行下面的动作,否则就跳出循环
循环第2次:运行创建墙1的动作
i 自增 1,即 i = 2,i < 10成立,继续运行下面的动作
循环第3次:......
...
循环第10次:运行创建墙1的动作
i 自增 1,即 i = 10,判断 i < 10是否成立,这里显然不成立,所以循环跳出,至此,循环就运行完毕
注意:
值得注意的是,由于循环中的 i 是一个变量,所以它的值可以被获取,在循环动作中可以借助 i 的值的变化来写一些动作,但是建议新手不要盲目更改 i 的值,否则可能会导致死循环,如下图:
循环每执行一次,i 都会先减1再加1,相当于这个全局变量 i 的值一直都是 0 ,很显然不可能 >=2 ,那么这个循环会一直运行下去,游戏直接由于死循环而崩溃
还有就是循环嵌套的问题,如果for循环套用for循环,记住不要使用同一变量名
while循环:
while循环也是一种循环,和for循环不同的是,while循环以条件当做跳出循环的标准,而for循环通常以运行次数当做跳出的标准
若动作循环次数已知,那么用for循环,若已经跳出循环的条件且不知道循环次数,那么用while循环
while循环程序原型:
while(bool) //括号里填循环条件
{
//循环动作;
}
但是在这里其实并不推荐使用while循环,因为for循环也可以构造while循环的模型
show my code:
其实就是构造一个死循环,如果条件满足则跳出循环