printf(“Dad said:\“C is very fun!\““);」
看着我敲出来的代码,老爹笑着拍了拍手。
「玥玥啊,你有没有发现在取数组元素的时候好像有点问题?」
老爹一边说,一边露出了他那让人抓狂的笑容。
一般老爹这么说,那肯定是意有所指。
「老爹你先前说无论是往数组里面放数据,还是从数组里面取数据,都要靠数组的编号,这样看来,的确可以把数组中的每一个元素都取出来。
但是如果数组的元素太多,一个一个的取也是一个很大的工程量啊。况且要一个一个的取的话,对于加载地图的时候完全没有帮助嘛!」
我脑袋飞速运转,开始分析当前存在的问题。
老爹满意地点了点头,然后说道:「分析得不错,那接下来就跟你说说混沌先民中掌握了轮回法则的两尊大神——for和while。」
「轮回法则?」
我眼睛一亮,从老爹的话中捕捉到了一些信息。
「不错,这两位可是有大能耐,当它们施展轮回法则的时候,会让它们所在的那片空间的时间停止,直到轮回法则结束。」
「听起来好有意思的样子!」
「既然如此,那么我们先用一个具体的小例子来说明它们的用法。
比如说现在我一个长度为1000的int型数组,需求是每一个元素的值就是它的在数组中的编号。
如果没有轮回法则的话,我们就只能这样:int arr[1000]={0, 1, 2, 3……,998, 999};
或者这样:
int arr[1000];
arr[0]= 0;
arr[1]= 1;
……
arr[999]= 999;
费劲不?」
「老费劲了!」
「但是有了for和while,我们就很容易就能做到了,先说for:
for(int i = 0; i < 1000; i++)
{
arr[i]= i;
}」
「这……这就完了?」
这回轮到我无语了,这相差也太大了吧?
「简单吧?现在来跟你说说这是什么意思。
for(轮回开始;轮回条件;轮回变数)
{
每次轮回执行的内容
}
当for轮回启动的时候,首先会执行轮回开始,在上面的例子中,我们在这个地方声明了一个名为i的int型变量,并为它初始化值为0。接下来for就会检查轮回条件,如果条件为真,它就要执行每次轮回都要做的事情,咱们这里向数组编号为i的元素赋值为i。此时i = 0,0当然是小于1000的,于是for执行轮回的内容,将编号为0(i = 0)的元素赋值为0(i=0)。
当每次轮回的事情做完后,for就要执行轮回变数,我们要它将i加1,所以这个时候i就从0变成了1。
接下来for又要去检查轮回的条件是不是满足,1小于1000成立,于是执行轮回内容:将编号为1(i = 1)的元素赋值为1(i=1),然后执行轮回变数, i从变成了2。
然后一直就是判断条件->执行内容->执行变数->判断条件……
直到i=999的时候。
当for执行完本次的轮回内容,即:将编号为999(i = 999)的元素赋值为999(i=999)后,再执行变数,i就从999变成了1000。
这个时候for再去判断轮回条件的时候,i等于1000并不小于1000,轮回条件不成立,结束轮回。」