AS3教程【七】判断 (Part2)

2024-11-08 17:33:07

1、一、判断的条件若要判断,必须有判断的标准,flash内称之为条件。所有的条件都是一个表达式,故而条件的全称是条件表达式。条件表达式无非如下几种情况:A大于BA等于BA小于BA大于或等于B(简称A大于等于B)A小于或等于B(简称A小于等于B)A不等于B对应上述6种情况,AS3内的写法如下:A>BA==BA<BA>=BA<=BA!=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=0if(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判断时,条件表达式里,若要进行两者是否相等的判断,请必须使用==

猜你喜欢