比较多个布尔值
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);
}
我从方法中得到了三个布尔值 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);
}