gpt4 book ai didi

java - 空指针异常取决于 or 语句的顺序

转载 作者:行者123 更新时间:2023-11-30 08:13:27 24 4
gpt4 key购买 nike

这个 for 循环应该遍历一个字符串数组,如果数组包含空值或空字符串,则使值 hasEmpty 为真。下面的代码给了我一个 NullPointerException。

String[] names = {null, "B", "C"};
boolean hasEmpty = false;
for(int i = 0; i<names.length; i++){
if ((names[i].equals("")) || (names[i] == null))
hasEmpty = true;
}

但是如果我改变 if 子句中 OR 语句的顺序,下面的代码似乎可以工作。谁能告诉我为什么会这样?

String[] names = {null, "B", "C"};
boolean hasEmpty = false;
for(int i = 0; i<names.length; i++){
if ((names[i] == null) || (names[i].equals("")))
hasEmpty = true;
}

最佳答案

因为||是一个短路运算符。一旦它从左到右找到一个为真的操作数,它甚至不会评估其他操作数(因为 true 或任何东西 总是 true)。

&& 也是如此:如果第一个操作数为 false,它会计算其他操作数,因为 false && anything 始终为 false。

关于java - 空指针异常取决于 or 语句的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29950774/

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