gpt4 book ai didi

java - 短路和一元运算符的工作

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

请看下面的代码:

int i=5;
boolean b = i<5 && ++i<5;//line 2
System.out.println(i);//line 3, prints 5

在第2行中,根据我的理解: 由于在所有运算符中,++ 的优先级最高 ++i 应该首先计算。但是 第 3 行 实际上是打印 i=5(而不是 6)。意思是,&& 在++ 运算符之前进行了评估。这怎么可能?

编辑:从答案中我看到“在 Java 中,所有表达式都是从左到右计算的。”。 但实际上优先顺序何时开始发挥作用。在以下代码中:

int a=1,b=1,c=1;
boolean b = a==b&&b==c;//Line2

在第 2 行代码不会只是从左到右运行。首先评估 a==b,然后评估 b==c,然后评估 && 运算符。你能解释一下吗?

最佳答案

这不是处理表达式的方式。

在 Java 中,所有 表达式都是从左到右求值的。 运算符优先级 仅在考虑对 &&参数 求值时发挥作用。 .

所以 i < 5++i < 5 之前计算甚至被考虑。

在这种情况下 ++i < 5 不会被评估,因为i < 5false .所以i停留在5 .

关于java - 短路和一元运算符的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852128/

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