2004/10/31 | ++与()
类别(flash) | 评论(3) | 阅读(406) | 发表于 17:20
var a:Number = 2;
trace(a+3*a++);
a = 2;
trace((a++)+3*a);

这样一段代码,会在output中出现什么效果呢?

众所周知,a++是先用a的原值,然后在执行a=a+1。
那第一个trace中的表达式就是2+3*2,自然结果就是8;

但是第二个呢?在flash中测试输出为11,怎么会是11呢?
原来()强制了a++的执行,在()里a=2,出了括号就是a=3了。2+3*3=11

^__^
0

评论Comments

日志分类
首页[43]
flash[21]
java[1]
game[15]
web[3]
life[3]