谁先谁后 马上分晓
1 public class ComputerOrder { 2 public static void main(String []args) { 3 int [] array = new int [] { 4 100,100,100,100 5 }; 6 int i = 0; 7 array[i + 1] = i = 1; 8 //array[i] = ++i; 9 //array[i++] = i++; 10 //array[++i] = i++; 11 //array[++i] = ++i; 12 //array[i++] = i = i + 1; 13 14 for(int temp = 0;temp < array.length;temp++) { 15 System.out.println("array["+temp+"]"+array[temp]); 16 } 17 } 18 19 }
运算结果
java中的赋值顺序是从右往左,看起来似乎是先 i = 1; 然后是 把i的值赋给array[2];
实际java中的计算顺序是从左往右的,先进行array[ ]中的 i + 1,然后再从右往左 进行赋值运算
把第七行的代码修改后,依次运行结果
array[i] = ++i;
array[i++] = i++;
array[++i] = i++;
array[++i] = ++i;
array[i++] = i = i + 1;
大家如果对++运算符有困惑,可以看我的另一个随笔
https://www.cnblogs.com/YanJieMao/p/11492869.html