java increment_java中的preincrement / postincrement

有人可以帮我理解原因:

int i=1;

int j=1;

int k=1;

int l=1;

System.out.println(i++ + i++);

System.out.println(++j + ++j);

System.out.println(k++ + ++k);

System.out.println(++l + l++);

给:

3

4

4

解决方法:

变量意味着:在评估表达式后增加变量.

变量意味着:在计算表达式之前增加变量.

这意味着,要将您的示例翻译为数字:

System.out.println(i++ + i++); //1 + 2

System.out.println(++j + ++j); //2 + 3

System.out.println(k++ + ++k); //1 + 3

System.out.println(++l + l++); //2 + 2

这是否清楚,还是需要进一步解释?

需要注意的是:’println’之后所有这些变量的值等于’3′.

由于OP问这个行为实际上有用,所以这里有一个“用例”.

int i = 0;

while(++i < 5) { //Checks 1 < 5, 2 < 5, 3 < 5, 4 < 5, 5 < 5 -> break. Four runs

System.out.println(i); //Outputs 1, 2, 3, 4 (not 5)

}

相比:

int i = 0;

while(i++ < 5) { //Checks 0 < 5, 1 < 5, 2 < 5, 3 < 5, 4 < 5, 5 < 5 -> break. Five runs

System.out.println(i); //Outputs 1, 2, 3, 4, 5

}

标签:java

来源: https://codeday.me/bug/20190925/1815989.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值