java下单之前减数量,Java之前和之后的增量和减量

Day after tomorrow is my exam for Computers (JAVA) and I have a big problem in the above title. I understood what does post and pre increment and decrement means. But I can no understand what to do when the matter comes to a complex, long statement. One example for such question is below.

class java_1

{

public void main()

{

int x = 4;

x += x++ - --x + x + x--;

}

}

You see what I meant by complex statements. The statement contains only one variable being incremented and decremented again and again, and I get confused over here. Can you please help me clear my confusion. Also, kindly give the answer to the above code.

解决方案

a += b; is similar to a = a + b. Using this assumption we can rewrite

x += x++ - --x + x + x--;

as

x = x + (x++ - --x + x + x--);

Lets now have x = 4 and evaluate right side (from left to right)

x + (x++ - --x + x + x--)

4 + (x++ - --x + x + x--)

^ //still x = 4

4 + (4 - --x + x + x--)

^ //x++ use current value (4), then increment x to 5

4 + (4 - 4 + x + x--)

^ //--x decremented to 4, then use current value (4)

4 + (4 - 4 + 4 + x--)

^ //still x = 4

4 + (4 - 4 + 4 + 4)

^ //x-- read current value (4), then decrement x to 3

So we are getting

x = 4 + (4 - 4 + 4 + 4);

which means

x = 12;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值