總結:
i++或++就是一個先加和后加的問題,當i++或++i是獨立執行的時候沒有區別,
當i++或++i不是是獨立執行的時候:i++ 先執行當前語句再加1,++i先加1再執行當前語句。
示例1:獨立執行沒區別
1 public static void main(String[] var0) { 2 int i = 0; 3 for (; i < 5; i++) { 4 System.out.println(i);//打印0-4 5 } 6 7 int j = 0; 8 for (; j < 5; ++j) { 9 System.out.println(j);//打印0-4
10 } 11 }
示例2:i++ 先執行當前語句再加1,++i先加1再執行當前語句
1 public static void main(String[] var0) { 2 int i = 0; 3 for (; i < 5;) { 4 System.out.println(i++);//輸出0-4 5 } 6 7 int j = 0; 8 for (; j < 5; ) { 9 System.out.println(++j);//輸出1-5 10 } 11 }
示例3:
1 private static Test test = new Test();//打印1,0
2 static int i;
3 static int j=0; 4 // private static Test test = new Test();//打印1,1 5 public Test() { 6 i++; 7 j++; 8 } 9 10 public static Test getInstance() { 11 return test; 12 } 13 14 public static void main(String[] args) { 15 Test.getInstance(); 16 System.out.println("i=" + Test.i + ",j=" + Test.j); 17 }
示例4:
1 int a = 0;
2 for (int i = 0; i < 99; i++) { 3 a = a ++; 4 } 5 System.out.println(a);//0,循環中a的值沒有改變過
示例5:
1 int b = 0;
2 for (int i = 0; i < 99; i++) { 3 b = ++ b; 4 } 5 System.out.println(b);//99,循環中值一直變化,i=4,b=5;
示例6:
1 Integer a = 0;
2 int b = 0; 3 for (int i = 0; i < 99; i++) { 4 a = a ++;//a沒有變化 5 b = a ++;//a+1,b+1; 6 } 7 System.out.println(a);//i=0,a=1,b=0;i=1,a=2,b=1; 8 System.out.println(b);//打印99,98