gpt4 book ai didi

java - 比较变量时前缀和后缀递增

转载 作者:行者123 更新时间:2023-12-01 15:04:08 24 4
gpt4 key购买 nike

有人可以解释一下为什么这段代码输出是

not equals
not equals 2

在第一个 if 语句中,a = 0 b/c 似乎是后缀增量;因此 a 直到下一行才会增加;但是,为什么两个a不相等呢?在第二个if中,当我运行调试器时,a的值为2,但测试为假,为什么?

public static void main (String[] args)
{
int a = 0;
if (a++ == a++) {
System.out.println("equals");
} else {
System.out.println("not equals");
}

if (++a == 2) {
System.out.println("equals 2");
} else {
System.out.println("not equals 2");
}

}

最佳答案

这并不是说它要等到下一行。 == 是一个“逻辑”运算符,因此首先计算每一侧的表达式,每个表达式都有增加“a”值的副作用。第一个增量的结果用于左轴,第二个增量的结果用于右轴。

在这些情况下,运算符是“前缀”还是“后缀”并不重要

关于java - 比较变量时前缀和后缀递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211320/

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