繁体   English   中英

即使条件为假,if 语句也会执行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM