gpt4 book ai didi

Java - 操作顺序 - 在一行中使用两个赋值运算符

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:52 27 4
gpt4 key购买 nike

在一行中使用两个赋值运算符时,运算顺序是什么?

public static void main(String[] args){
int i = 0;
int[] a = {3, 6};
a[i] = i = 9; // this line in particular
System.out.println(i + " " + a[0] + " " + a[1]);
}

编辑:感谢您的帖子。我知道 = 从右边获取值,但是当我编译它时我得到:

9 9 6

我以为它会是 ArrayOutOfBounds 异常,但它在 超过 9 之前分配了 'a[i]'。它只对数组这样做吗?

最佳答案

= 被解析为右结合,但求值顺序是从左到右。

所以:语句被解析为a[i] = (i = 9)。但是,a[i] 中的表达式 i 在右侧 (i = 9) 之前求值,当 i 仍然是 0

这相当于:

int[] #0 = a;
int #1 = i;
int #2 = 9;
i = #2;
#0[#1] = #2;

关于Java - 操作顺序 - 在一行中使用两个赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9440844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com