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
^__^
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
^__^
回复Comments
作者:
{commentrecontent}