Java Int++;操作员isn';t第一次增加int';s跑

Java Int++;操作员isn';t第一次增加int';s跑,java,int,unary-operator,unary-function,Java,Int,Unary Operator,Unary Function,该程序的基本目标是让用户输入一个数字,增加3倍,然后使用一元运算符减少3倍。问题是,当它运行时,第一行“number is now___;”最后只显示用户输入的同一个数字,而不是增加一个。Java新手,不知道为什么 import java.util.Scanner; class U1_L4_Activity_One{ public static void main(String[] args){ int num; Scanner startNum =

该程序的基本目标是让用户输入一个数字,增加3倍,然后使用一元运算符减少3倍。问题是,当它运行时,第一行“number is now___;”最后只显示用户输入的同一个数字,而不是增加一个。Java新手,不知道为什么

import java.util.Scanner;

class U1_L4_Activity_One{
  public static void main(String[] args){
      
      int num;
      Scanner startNum = new Scanner(System.in);
      
      //Enter an int (num)
      System.out.println("Enter starting number(must be an integer)");
      num = startNum.nextInt();
      
      //Increases num 3 times
      System.out.println("number is now " + num++);
      System.out.println("number is now " + num++);
      System.out.println("number is now " + num++);
      //Decreases num 3 times, back to original number
      System.out.println("number is now " + num--);
      System.out.println("number is now " + num--);
      System.out.println("number is now " + num--);
  }
}

这是因为
num++
在“background”中增加它的值,然后返回它。如果要递增num并立即返回值,应使用
++num

一元运算符可以用作递增后运算符或递增前运算符。 在本例中,由于在num变量之后添加了+,因此它正在执行增量后操作。 这意味着num变量值将首先显示,然后递增1。 这就是为什么先打印数字,然后再递增,从而再次显示相同的数字

要解决此问题,可以使用预增量操作

  System.out.println("number is now " + ++num); // <-- the num is incremented first and then displayed.
  System.out.println("number is now " + ++num);
  System.out.println("number is now " + ++num);
  //Decreases num 3 times, back to original number
  System.out.println("number is now " + --num); // <-- pre decrement operation
  System.out.println("number is now " + --num);
  System.out.println("number is now " + --num);

System.out.println(“数字现在是”+++num);//这回答了你的问题吗?好的,谢谢,这更有意义。