gpt4 book ai didi

java - 为什么java语句评估会发生这样的情况?

转载 作者:行者123 更新时间:2023-12-02 12:25:51 25 4
gpt4 key购买 nike

int z = 1;
System.out.println(z++ == ++z);
System.out.println(++z == z++);

输出将是:

false
true

我不明白为什么,请向我解释一下。

最佳答案

Operands of == are evaluated left to right ,并且 ++ 具有更高的优先级,因此您的代码相当于:

int z = 1;
int tmp1 = z++; //tmp1 = 1 / z = 2
int tmp2 = ++z; //tmp2 = 3 / z = 3
System.out.println(tmp1 == tmp2);

tmp1 = ++z; //tmp1 = 4 / z = 4
tmp2 = z++; //tmp2 = 4 / z = 5
System.out.println(tmp1 == tmp2);

我假设您了解 z++++z 之间的区别:

  • tmp1 = z++; 可以分解为:tmp1 = z; z = z + 1;
  • tmp2 =++z;可以分解为:z = z + 1; tmp2 = z;

关于java - 为什么java语句评估会发生这样的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12036481/

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