- 变量++ 先取值,后加1
- ++变量 先加1,后取值
- 先看一个小栗子,先取值故result是num初始的值,num的值是num自加一后的值
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入num: " );
int num = sc.nextInt();
int result = num++ ;
System.out.println("此时num是:" + num);
System.out.println("result is " + result);
}
}
- 详细说明
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入num: " );
int num = sc.nextInt();
int result = num++ + num++ + num++ + num*2;
System.out.println("此时num是:" + num);
System.out.println("result is " + result);
}
}
- num = num++;num的值取决于编译,假设num的值是1,先取值为1,再自加num = 2,但是赋值是赋先取出来的值1,所以num自加为2的结果被覆盖,最终为1
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入num: " );
int num = sc.nextInt();
num = num++;
System.out.println("此时num是:" + num);
}
}
- 自加与逻辑运算&&,&&只要前一个判断为假,后面判断便不进行,所以num不会自加,直接输出结果
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入num: " );
int num = sc.nextInt();
boolean result = num > 2 && num++%2 == 1;
System.out.println("逻辑判断是:" + result);
System.out.println("此时num是:" + num);
}
}