gpt4 book ai didi

java - 为什么输出是 "false10"而不是 "false11"?

转载 作者:行者123 更新时间:2023-12-01 23:00:52 25 4
gpt4 key购买 nike

有人能告诉我为什么下面的代码中 a 的值没有改变吗?

int a = 10;
System.out.print( (a < 5) && (++a==11));
System.out.println(a);

最佳答案

您正在看到“短路评估”的实际效果。 boolean 表达式的第二部分(++a==11)从未被评估,因为 (a < 5)是假的。在这种情况下,JVM 在计算 (++a==11) 之前就知道整个表达式为 false。 ,所以它完全跳过它。

这也是为什么这种“副作用”在逻辑测试中很糟糕的一个很好的例子:你正在以不可预测的方式改变你正在评估的值。在一个不平凡的程序中,您不一定知道 (a < 5) 是否是真的,所以很难知道是否a是否会增加。

关于java - 为什么输出是 "false10"而不是 "false11"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58422780/

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