AS3教程【七】判断 (Part2)

2026-04-03 22:50:55

1、一、判断的条件

若要判断,必须有判断的标准,flash内称之为条件。所有的条件都是一个表达式,故而条件的全称是条件表达式。

条件表达式无非如下几种情况:

A大于B

A等于B

A小于B

A大于或等于B(简称A大于等于B)

A小于或等于B(简称A小于等于B)

A不等于B

对应上述6种情况,AS3内的写法如下:

A>B

A==B

A<B

A>=B

A<=B

A!=B

2、二、==与=的区别

要特别注意判断条件内的第二种情况,由于是条件表达式,在判断A与B是否相等时,必须使用==而不是=

通过前面的学习,我们已经知道,=与数学课上的等于号是两码事,=是用来赋值的,它的作用是将右边的数据赋值给左边的变量,赋值完毕后的返回值就是=左边的变量的值

如果,在使用if判断时,将条件表达式中使用了=,那么,AS3是先将=右边的数据赋值给=左边,然后,条件表达式的返回值就是=左边的量。看下面的代码:

var passWord:String="网雨霏霏"

var mytext:String="你好"

if(mytext=passWord){

trace("密码正确")

}

else{

trace("密码错误")

}

在这里,出现了一个String数据类型,乃是字符串类型,后面章节再详述

本段代码,我的本意是,设置了一个密码(网雨霏霏),如果用户输入的文字等于这个密码,就提示用户,输入的密码是正确的,否则是错误的。

可惜的是,事与愿违,用户输入的密码(你好)和我设置的密码(网雨霏霏)并不相等,却输出了“密码正确”

大家可以尝试着将mytext的值替换为别的,无论你替换为神马,输出结果永远是“密码正确”!

只需将代码的第三行的=替换为==方可实现我们想要的效果(只有输入的是“网雨霏霏”,才提示“密码正确”)

那么,是不是说,只要用=来当做判断的条件,返回值一定是true呢?要回答这个问题,必须弄明白下面的知识点

3、三、条件表达式的返回值

仅有两个:“真”与“假”。真就是true,假就是false

那么,如果代码写成下面的:

if(true){

trace("真")

}

else{

trace("假")

}

就一定输出“真”

下面给出一个AS3的小后门,AS3内,可以将数字类型的数据当做条件表达式的返回值!且,规定了,只要是数字0,代表的就是false,除了数字0之外的,任意数字(或者字符串),代表的都是true

看下面的代码:

var a:Number=0

if(a){

trace("真")

}

else{

trace("假")

}

输出的是“假”。大家可以将a的数值修改为其他的数字,可以是负值,可以是小数,也可以是负的小数。只要a的值不等于0,永远输出“真”

甚至,a的值不是数字,比如说,将第一行代码修改为:

var a:String="flash AS3教程"

其余代码不改变,输出的还是“真”

到此为止,就可以解释本页面第二部分内代码的输出结果了,也就是下面的代码:

var passWord:String="网雨霏霏"

var mytext:String="你好"

if(mytext=passWord){

trace("密码正确")

}

else{

trace("密码错误")

}

因为passWord的值是字符串,将其使用赋值号=给mytext赋值之后,mytext的值也是字符串了,而字符串会被AS3编译器当做true处理,故而输出“密码正确”

在判断两者是否相等时,一定不能使用=,否则会出现非常意外的情况。必须使用==或者===来判断。多数情况下,我们使用==即可。===很少使用。

因此,在if判断时,条件表达式里,若要进行两者是否相等的判断,请必须使用==

猜你喜欢