Window
以上代码打印出“5”,但我不明白怎么办?我继续为最后一个x得到零,然后乘以第二个x,它仍然是0,然后我得到2?请帮忙!
答案 0 :(得分:3)
程序处理语句的方式如下:
x = 1;
1 + (increment x) 2 * (increment x)(decrement x) 2 =
1 + 2 * 2 =
1 + 4 =
5
添加了:
如果你要求它为你打印而不是实际算术,你会看到x实际上是相等的:
int x = 1;
System.out.println(x++ + " + " + x++ + "*" + --x);
输出:1 + 2*2
答案 1 :(得分:1)
它的工作原理如下:
System.out.println( x++ + x++ * --x );
由于前两个是后缀,因此在输入值之后才会执行它们。在第一个x
中放入1,然后将值增加到2.第二个放入第二个x
,值增加到3。
System.out.println( 1 + 2 * --x );
由于--x
是前缀,因此操作在下载值之前完成。因此,它将等于2,x
将再次等于2.
System.out.println( 1 + 2 * 2 );
在此之后,它的工作方式与数学中通常的相同(加法前的乘法)。
答案 2 :(得分:0)
public static void main(String[] args) {
int x ;
x = 1;
System.out.println( x++ );
//1
System.out.println( x++ * --x );
//2*--3 = 2*2 = 4
System.out.println( x++ + (x++ * --x ));
//1 + 4 = 5
System.out.println( x++ + x++ * --x );
//1 + 4 = 5
}