为了账号安全,请及时绑定邮箱和手机立即绑定

Java:前缀/增量/递减操作符的后缀?

Java:前缀/增量/递减操作符的后缀?

MMMHUHU 2019-06-26 17:16:34
Java:前缀/增量/递减操作符的后缀?从下面的程序或这里,为什么最后一次打电话给System.out.println(i)打印值7?class PrePostDemo {      public static void main(String[] args){           int i = 3;           i++;           System.out.println(i);    // "4"           ++i;                        System.out.println(i);    // "5"           System.out.println(++i);  // "6"           System.out.println(i++);  // "6"           System.out.println(i);    // "7"      }}
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

i = 5;System.out.println(++i); //6

这将打印出“6”,因为它需要将一个添加到其中并返回值。5+1=6;这是前缀,在操作中使用它之前添加数字。

i = 6;System.out.println(i++); //6 (i = 7, prints 6)

这将打印出“6”,因为它需要I,存储一个副本,添加1并返回副本。所以你得到了我的值,但同时也增加了它。因此,您打印出旧值,但它会增加。后缀增量的美。

然后,当您打印出i时,它会显示i的实际值,因为它是递增的。七


查看完整回答
反对 回复 2019-06-26
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

我知道这一点已经得到了回答,但我认为另一种解释可能会有所帮助。

另一种解释方法是:

++i的结果new ii++会给出原件的结果i并存储new i下一个动作。

一种思考它的方法是,在表达式中做一些其他的事情。在打印当前值时,i,这将取决于i已在表达式内或表达式之后更改。

    int i = 1;result i = ++i * 2 // result = 4, i = 2

i在计算结果之前对其进行评估(更改)。印刷i对于此表达式,显示更改后的i用于这个表达式。

result i = i++ * 2 // result = 2, i = 2

i在计算结果后进行评估。印刷i的原始值。i在这个表达式中使用,但是i仍将被更改为任何进一步的用途。所以打印值i表达式之后,将显示i..作为.的价值i无论是打印还是使用,都发生了变化。

result i = i++ * 2 // result = 2, i = 2System.out.println(i); // 2

如果您保持一致的模式,并包括所有值的打印行:

  int i = 3; System.out.println(i);    //  3System.out.println(i++);  //  3System.out.println(i);    // "4"System.out.println(++i);  //  5          System.out.println(i);    // "5"System.out.println(++i);  // "6"System.out.println(i++);  // "6"System.out.println(i);    // "7"


查看完整回答
反对 回复 2019-06-26
?
MM们

TA贡献1886条经验 获得超2个赞

想想++ii++类似于i = i+1.但这是不一样的。不同之处是i获取新的增量。

在……里面++i,增量立即发生。

但如果i++当程序转到下一行时是否会出现增量。

看看这里的代码。

int i = 0;while(i < 10){
   System.out.println(i);
   i = increment(i);}private int increment(i){
   return i++;}

这将导致无结束循环。..因为i将用原始值返回,在分号之后,我将得到增量,但返回的值尚未增加。因此i将不会以增量值的形式实际返回。


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 389 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号