[英]if statement executing even if condition is false
我正在尝试:如果abb.iscurrentlyy()
返回 true,则if
语句或abb.islately()
中的 go 为 true。
我的 if 语句有什么问题? 当我将abb.iscurrentlyy()
设置为 false 时。 abb.islately()
设置为 true。 为什么abb.iscurrentlyy()
会进入循环,即使abb.iscurrentlyy()
是假的?
if (abb.iscurrentlyy() || abb.islately()) {
if (reqFiles != null) {
for (int i = 0; i < reqFiles.length; i++) {
Future<ExecResult> lcukv = executor.submit(worker);
executionFutureException.add(lcukv);
}
}
} else { // do if condition is false.
}
术语or
(||) 意味着要使条件为真,至少有一个子条件必须为真。
boolean condition1 = true;
boolean condition2 = false;
if(condition1 || condition2)
{
System.out.println("One or both conditions were true");
}
else
{
System.out.println("Both conditions were false");
}
在现实世界中,想象走进一家冰淇淋店。 你喜欢草莓冰淇淋。 你也喜欢巧克力冰淇淋。 你讨厌所有其他口味。 如果这家商店至少有其中一种口味,那你就很高兴了。
您的代码类似于上面的示例。 另一方面,如果当一个条件为真而另一个条件为假时您想要假,请使用and
(&&)。
boolean condition1 = true;
boolean condition2 = false;
if(condition1 && condition2)
{
System.out.println("Both conditions were true");
}
else
{
System.out.println("At least one condition was false");
}
在这种情况下,冰淇淋店必须有你喜欢的两种口味才能让你开心。
想想or
更宽容:“我可以让这个或那个是真的。” and
,然而,听起来包容,但它实际上更排他性:“我必须拥有这个和那个才是真实的。”
在您的代码中, abb.isCurrentlyy()
和abb.islately()
都需要为 false,而不是 go 内循环。 ||
用作逻辑 OR。 这意味着如果任何一个值为真,则语句被评估为真。 我建议您为这两个条件编写单独的 if 循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.