作者CrystalNik (水晶尼克)
看板java
标题[问题] 关於一个小程式的问题
时间Mon Feb 17 23:25:27 2014
public class Static
{
static
{
int x = 5;
}
static int x,y ;
public static void main(String args[])
{
x--;
myMethod();
System.out.println( x + y + ++x );
}
public static void myMethod()
{
y = x++ + ++x ;
}
}
想请问各位大大为何这段程式码执行结果为何是3 ?
我自己理解是 x-- 後 x为-1
所以 y = x++ + ++x ; 之前 x为-1
++x先算所以x变为0
所以 y = 0 + 0 所以 y=0
x++後算所以 x=1
所以 myMethod 执行之後 x=1 ,y=0
接着是 ( x + y ++x )
y=0 所以这式子其实是 x + ++x
一样 ++x 先算所以 x变2
所以为 2+2=4
但很明显结果是3.... 所以一定是哪里有问题....
请问这是怎麽回事?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.239.211.6
1F:推 LPH66:Java 的二元运算子会隔开 ++ 的效应 02/17 23:27
2F:→ LPH66:所有左边的效应会结算完右边的计算才会开始 02/17 23:29
3F:→ CrystalNik:可是那为什麽一开始myMethod里面没有隔开算呢? 02/17 23:35