++与()

      flash 2004-10-31 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

^__^
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}