比较多个布尔值

Compare multiple boolean values

我从方法中得到了三个布尔值 return,我想像这样检查条件:首先它将检查所有三个布尔值

场景一:if locationMatch, matchCapacity, filterMatchStatus then statement return true value.

场景 2:如果 locationMatch、matchCapacity、filterMatchStatus 如果任何布尔值是假的,那么它 return 假值

我试过这样但是,如果任何布尔值是真的,它是 returning 真

public boolean matchFilter(FilterTruck filter){

            boolean locationMatch = filterMatchesLocation(filter);
            boolean matchCapacity = filterMatchesCapacity(filter);
            boolean filterMatchStatus = filterMatchesStatus(filter);
            if (locationMatch) {
                return true;
            }
            if (matchCapacity) {
                return true;
            }
            if (filterMatchStatus) {
                return true;
            }
        }
        return false;
    }

已更新您的代码试试这个。

public boolean matchFilter(FilterTruck filter) {

    boolean locationMatch = filterMatchesLocation(filter);
    boolean matchCapacity = filterMatchesCapacity(filter);
    boolean filterMatchStatus = filterMatchesStatus(filter);

    return locationMatch && matchCapacity && filterMatchStatus;
}
public boolean matchFilter(FilterTruck filter){

        boolean locationMatch = filterMatchesLocation(filter);
        boolean matchCapacity = filterMatchesCapacity(filter);
        boolean filterMatchStatus = filterMatchesStatus(filter);

        return locationMatch && matchCapacity && filterMatchStatus;
    }

代码已最小化。感谢@Deepak。基本上你在这里说只有 returns 如果所有 3 个变量都为真,则为真。如果一个为假,语句 returns false(布尔代数)

用以下代码替换您的代码。在您的情况下使用“&”运算符,因为如果表达式满足给定条件,“&”将 return 为真,否则结果将为假

public boolean matchFilter(FilterTruck filter){
            boolean locationMatch = filterMatchesLocation(filter);
            boolean matchCapacity = filterMatchesCapacity(filter);
            boolean filterMatchStatus = filterMatchesStatus(filter);
        return locationMatch && matchCapacity  && filterMatchStatus;
    }

从您的方法

中删除所有 if 条件和 return 以下内容
 return (locationMatch && matchCapacity && filterMatchStatus);

与其他答案类似,但形式更短(并且只有一个出口点!):

public boolean matchFilter(FilterTruck filter)
{
    boolean locationMatch = filterMatchesLocation(filter);
    boolean matchCapacity = filterMatchesCapacity(filter);
    boolean filterMatchStatus = filterMatchesStatus(filter);
    return (locationMatch && matchCapacity && filterMatchStatus)
}

试试这个代码:

public boolean matchFilter(FilterTruck filter){
    return filterMatchesLocation(filter) && filterMatchesCapacity(filter) && filterMatchesStatus(filter);
}