Java中运算符的优先级
当我运行此Java代码时:
int[] a = new int[10];
int i = 0,j = 0;
while(i < 10){
a[i++] = j+++j++;
}
System.out.println(Arrays.toString(a));
我作为输出获取:[1, 5, 9, 13, 17, 21, 25, 29, 33, 37]
。
有人能解释一下a[i++] = j+++j++
语句是如何解析的吗
# 1 楼答案
表达式
j+++j++
中的第一个j++
递增j
并返回其上一个值第二个
j++
递增j
并返回其上一个值,即第一个j++
递增后的值在下一次迭代开始时,
j
比上一次迭代开始时的值大两倍(因为上一次迭代增加了j
两倍)因此:
# 2 楼答案
将
a[i++] = j++ + j++;
i++
翻译成使用i,然后增加i