考虑Java中的以下代码片段。我知道以下代码段中的语句temp[index] = index = 0;
几乎是不可接受的,但在某些情况下可能是必要的:
package arraypkg;
final public class Main
{
public static void main(String... args)
{
int[]temp=new int[]{4,3,2,1};
int index = 1;
temp[index] = index = 0;
System.out.println("temp[0] = "+temp[0]);
System.out.println("temp[1] = "+temp[1]);
}
}
它在控制台上显示以下输出。
temp[0] = 4
temp[1] = 0
我不明白temp[index] = index = 0;
。
temp[1]
如何包含0
?这项任务是如何发生的?
答案 0 :(得分:9)
分配完成(temp[index] = (index = 0)
),右关联。
但首先,对LHS变量计算表达式temp[index]
。那时index
仍为1.然后RHS(index = 0
)完成。
答案 1 :(得分:1)
你的陈述给它指的是零。语句temp [index] = index = 0将零写入索引AND并进入temp [index]。这就是那个意思。将所有变量放在赋值运算符0的左侧。
答案 2 :(得分:1)
该行的作用是在temp[index]
分配值index
后index
应该等于0
。
这就是为什么这种语法大多不可接受的原因。它很难阅读,大多数人都不理解。
答案 3 :(得分:1)
您已将temp [1]和index指定为' 0' 它从左到右运行。 想想临时[index / * * /]