发布网友
共2个回答
热心网友
原理和Java编译器生成的字节码有关,第一条输出的结果是0+(-1)+(-2)+(-3)=6,a自减4次变为-4;第三条输出的结果是(-1)+(-2)+(-3)+(-4),b自减4次也变为-4。
不要研究这种问题,实际编程中绝对不会出现这种代码。
热心网友
要知道这两个感念:
--在前 先自增,再赋值
--在后 先赋值,在自增
所以System.out.println(a-- + a-- + a-- + a--)的运行过程是
System.out.println(0 + -1 + -2 +-3) 结果为 -6
而 System.out.println(--b + --b + --b + --b)的运行过程是
System.out.println( -1 + -2 + -3 + -4) 结果为 -10
System.out.println(a); 这段输出的是 a 这个对象的值 所以是 4
而 System.out.println(a-- + a-- + a-- + a--);这段是做了运算,输出的是运算的值。故为-10。
System.out.println(b)同理