4、我们生活的世界,就是一次又一次的循环

(1)如何吃饱饭?

上面的这句话,你也许不信,好吧,我们来举个例子吧。

比如吃饭,你是怎么把吃饱的呢?如果分解一下,你就会发现,他就是一个循环的过程。

不管你吃的是什么,大脑都是在执行这样一个简单的过程。然后,我们看一下为了既不撑死又能吃饱,我们需要哪些条件?

首先,每次循环的时候,都会有一个判断,吃饱了没有?这个判断叫做循环条件。

第二点、每次循环都会重复一个过程,把饭放到嘴里。这个东西叫循环体。

第三点、这个过程看似重复,但又不一样。因为每次吃一口以后,你的吃饱程度变得不一样了。所以,这个吃饱程度,我们叫做循环,这个吃饱程度的改变,我们叫做循环变量的改变。如果这个东西不会改变,我们最后就撑死了。

第四点、在循环之前,你的吃饱程度为零,这一点叫做循环初始化。

于是,我们试着用as的语法规则来写的话,就会写成下面的样子。

var 吃饱程度=0;

while(吃饱程度<100){

把饭放到嘴里,咽下去;

吃饱程度+=1;

}

这个循环是as循环的一种,叫做while循环。这里边有一句你可能比较困惑,就是

吃饱程度+=1;这句话的意思就是在原来的吃饱程度上再加一。同样我们也可以加其他的数,比如

吃饱程度+=2;

吃饱程度+=3;

等等

如果你只是在原来的基础上加一,那他还有一个简单的写法。

吃饱程度++。

是的,吃饱程度++等同于吃饱程度+=1;

好,到目前位置,上面的这段代码的含义我们就很清楚了,首先初始化变量,然后判断循环条件是不是成立,如果成立的话,就执行下面的循环体,同时修改循环变量。本次循环结束,跳到while,继续判断,如果条件还成立,继续执行循环体,直到循环条件不成立了为止。

我们来一段正式的代码,计算1+2+3+4+5+6+7+…+100的结果是多少。

var sum=0;

var i=1;

while(i<=100){

sum+=i;

i++;

}

trace(sum);

这段代码如果已经看懂的同学,下面这段解释可以华丽略过。

首先我们初始化了一个变量,sum,用来存储相加的和,然后又初始化了一个变量i,用来存储每次需要加上的数字,并把它设为1,然后循环开始,第一次循环的时候,i是1,然后,第二循环,i变成了2,实际上就是执行了1+2的过程,此时sum变成了3,到第三次循环,i变成了3,所以,这一次执行的就是3+3,sum变成了6,第四次循环,i变成了4,所以是6+4,sum变成10,直到i变成100,循环结束。

我希望你已经看明白了。

(2)吃到苍蝇怎么办?

循环这东西,说起来就是这样简单。但是,在做循环中我们还需要考虑到几种特殊情况。

比如吃饭的时候,吃到了骨头怎么办?吃到了苍蝇又该怎么办?

是的,吃到了骨头的话,你就不会再吃这一口,而是接下去吃下一口。也就是说中途结束本次循环,然后进入下一次循环。

但是吃到苍蝇呢?呵呵,我想,你吃饱了。

于是我们把这两种情况写进刚才的循环里,这个循环就变成了这个样子。

var 吃饱程度=0;

while(吃饱程度<100){

if(吃到骨头) continue;

if(吃到苍蝇) break;

把饭放到嘴里,咽下去;

吃饱程度+=1;

}

是的,continue的意思就是跳出本次循环,进入下一次循环,break的意思是直接结束整个循环。

(3)换一种玩法

如果你看懂了上面这些,我们再来介绍一下大名鼎鼎的另外一种循环形式,for循环。

for(var 吃饱程度=0; 吃饱程度<100; 吃饱程度++){

把饭放到嘴里,咽下去;

}

for循环的作用跟while循环是一样的,只不过因为它看起来更简洁,所以使用起来更方便。

我们看到在for后面的括号里,跟了三个语句,语句之间,用英文的分号分开了,第一个语句是循环初始化,第二个语句是循环条件,第三个语句是改变循环变量。

我们使用for循环把刚才的加法题再做一遍

var sum=0;

for(var i=0;i<=100;i++){

sum+=i;

}

trace(sum);

(4)每人一台iPhone

吃饭这种事情,是一种累加制的循环,我们每次循环向前走一步,直到达到终点。除了这种之外,其实我们还有另外一种事情经常会用到循环,那就是遍历。比如我决定在愚人节那天宣布,看这篇教程的童鞋每人送一部iphone,这种对一个集合中的每一个对象都执行一个操作的事情,叫做遍历。我们常常用循环来解决遍历的问题。

想一想如果你是计算机,如何来解决这样一个送礼的问题。

首先,可能我们需要一个名单,看看到底多少人看过这个教程,然后我们从名单的第一个人开始送,送完第一个人,再来看有没有第二个人,如果有第二个人,就继续送,直到超出了总人数,这个循环就结束了。

所以,我们先来解决名单的问题。为了解决这一问题,隆重推出程序猿们常常挂在嘴边的一个概念——数组。

是的,你可以把数组理解成一个可以存放任何数据的名单。

比如我们需要建立一个存放小明、小王、小芳三个人的名单。

var nameList:Array=new Array(“小明”,”小王”,”小芳”);

或者

var nameList:Array=[“小明”,”小王”,”小芳”];

就像我们经常通过名单的编号来找到相应的人一样,我们也可以利用数组中每一个数据的编号找到相应的数据,这个编号叫做索引。有一点需要千万注意,数组中的索引是从零开始的。

数组中的索引是从零开始的!

数组中的索引是从零开始的!

数组中的索引是从零开始的!

数组中的索引是从零开始的!开始的!开始的。。。

所以,要找到小明,你要这样写nameList[0];

那小芳呢?当然是nameList[2]了。

所以,送iphone的事情就变成了这样。

var nameList:Array=[“小明”,”小王”,“小芳“];

for(var i=0;i< nameList.length;i++){

nameList[i],给你一台iphone;

}

nameList.length取出的是数组的长度,也就是说这个数组包含多少条数据。

到这里,聪明的童鞋一定想起了第一次我们提到的例子

其实我们可以这样写的

var imgList:Array=[img0,img1,img2,img3,img4,img5,img6];

for(var i:int=0;i<imgList.length;i++){

imgList[i].z=i*200+100;

}

var box:Sprite=new Sprite();

for(var i:int= imgList.length-1;i>=0;i–){

box.addChild(imgList[i]):

}

虽然他还不足够好,但至少目前为之,它已经看上去很可以了。

    博视界科技专注于沉浸式全景数字餐厅、全息酒店宴会厅,旨在帮传统餐饮用科技玩跨界,欢迎咨询!

官方网站:www.boseetech.com

联系方式:    

微信联系我:


    【声明】转载本文请注明出处三人行设计,并保留有效链接:AS3通俗版教程-歪谈as语法(下) http://www.srxtuan.com/archives/1049,谢谢!

猜您还喜欢: