一尘不染

Java:递增/递减运算符的前缀/后缀?

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"
     }
}

阅读 504

收藏
2020-03-01

共1个答案

一尘不染

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

这将打印出“ 6”,因为它将i加1并返回值。5 + 1 = 6;这是前缀,在操作中使用该编号之前会添加该编号。

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

这将打印出“ 6”,因为它需要i,存储副本,加1并返回副本。因此,你获得了我当时的价值,但同时又增加了它。因此,你可以打印出旧值,但是它会增加。后缀增量的好处。

然后,当你打印出i时,它会显示i的实际值,因为它已经增加了。7

2020-03-01