gpt4 book ai didi

Java 后缀运算符优先级

转载 作者:行者123 更新时间:2023-12-01 19:42:34 24 4
gpt4 key购买 nike

在下面的代码示例中,我很难理解后缀运算符在比较之前以某种方式发生的想法。我知道后缀具有更高的优先级,但根据 java 文档:

the postfix version (result++) evaluates to the original value.

所以在这段代码中:

    int number = 2;
boolean bob = number < number-- * number;
System.out.println(bob +" "+number );

输出时,数字应该是1。这是预期的。问题是鲍勃是假的。如果尽管有后缀,数字仍然使用“原始值”——那么问题不应该评估为:鲍勃 = 2 < 2 * 2,上次我检查 2 小于 4?最后相乘的另一个数字是否以某种方式更改为 1(这对我来说没有意义)?

我知道问题不在于其中的比较运算符,因为它工作正常:

    number = 2;
boolean test = 2 < number++;
System.out.println(test);

2 < 2 在这里正确,然后它增加数字。为什么与前面的例子不同?

最佳答案

number-- 的计算结果为 2,但此后对 number 的所有引用的计算结果为 1。因此 number-- * number 的计算结果为2 * 1,即2。

关于Java 后缀运算符优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830835/

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