ActionScript中false==0, true==1
来源:互联网 发布:php加密网站 编辑:程序博客网 时间:2024/04/29 04:07
今天听同事说AS的语法很奇怪,可以进行连续判断,比如:
var num:Number = 98.45;
if(97.0<num<100.0)
trace("正确");
调试时居然能够输出"正确"!
感觉有点奇怪,印象中一般的编程语言是不支持这种写法的。于是写了几行代码测试了一下:
1、
var num:Number = 101;
if(97.0<num<100.0)
trace("正确");
调试时还是输出"正确"!
2、
var num:Number = 50
if(97.0<num<100.0)
trace("正确");
调试时仍然输出"正确"!
这就怪了,难道这种连续判断的结果始终为true?
3、
var num:Number = 50
if(97.0<num<-100)
trace("正确");
这一次没有输出了。
看来连续判断的结果并不是总为true,那到底是什么原因呢?想了半天,猜测其原因是大概这样的:
AS中true在内存中用1表示,false用0表示,进行数学判断时,true==1, false==0;
从左往右运算时,97.0<num<100,与下面的代码等效:
var temp:Boolean = 97.0<num;
temp<100;
即先判断97.0<num是否为真,结果存到temp里,再拿temp和100进行比较。
97.0<num的结果只有两种,要么为true,要么为false, true和falsse分别为0和1,所以不管怎么样,temp始终小于100,所以if(97.0<num<100.0) trace("正确");始终输出”正确“;而if(97.0<num<-100) trace("正确");始终没有输出。
最后再测试一下:
4、
if(false == 0)
trace("false == 0");
if(true == 1)
trace("true == 1");
if(true == 2)
trace("true == 2");
输出
false == 0
true == 1
由此可见,AS中,false == 0; true == 1。后来看查看AS API,更确定了这一猜测,API中的有关true,false的说明如下:
true:代表 true 的布尔值。布尔值可以为 true 或 false,true 与 false 是对立的。如果自动数据类型转换将 true 转换为数字,则为 1;如果将 true 转换为字符串,则为 "true";
false:代表 false 的布尔值。布尔值可以为 true 或 false;false 与 true 是对立的。如果自动数据类型转换将 false 转换为数字,则为 0;如果将 false 转换为字符串,则为 "false"。
- ActionScript中false==0, true==1
- 逻辑运算中true和false的数字表现形式true=1 false=0
- iselignored=false/true
- inverse=false or true
- inverse=true or false
- <%@ page isThreadSafe="true|false" %>
- boolean b=true?false:true==true?false:true;
- {"acknowledged"=>true, "shards_acknowledged"=>false}
- Application.EnableEvents =false(true)的理解
- android android:duplicateParentState="true" "false"
- android android:duplicateParentState="true" "false"
- android android:duplicateParentState="true" "false"
- android android:duplicateParentState="true" "false"
- JavaScript中为什么null==0为false而null>=0为true
- JavaScript中为什么null==0为false而null>=0为true
- flex4编译器参数之 -keep-generated-actionscript=true
- Java中 3*0.1 == 0.3 返回值 false ,1*0.3 == 0.3 返回值 true
- 为什么Java中1000==1000为false而100==100为true?
- csdn 伴随我成长11.13
- 关于拷贝构造函数
- 市盈率仍是判断股市泡沫的重要标准
- 如何学习呢?迷茫
- IT职业技能课
- ActionScript中false==0, true==1
- 智乐软件笔试题(Gameloft) C++
- 页面进入和退出的特效
- Windows 7的使用技巧或功能经典20条
- 描述 Windows 操作系统内存管理的方法
- 电脑键盘的快捷键
- 英语
- CDatabase 通则
- Eclipse快捷键大全(转载)