我有三个从方法返回的布尔值,我想检查这样的条件:首先它将检查所有三个布尔值
场景1:如果是locationMatch,matchCapacity,filterMatchStatus则语句返回true值。
场景2:如果是locationMatch,matchCapacity,filterMatchStatus,如果任何布尔值为false,则返回false值
我试过这样但是,如果任何布尔值为真,它返回true
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;
}
答案 0 :(得分:1)
更新了您的代码,试试这个。
public boolean matchFilter(FilterTruck filter) {
boolean locationMatch = filterMatchesLocation(filter);
boolean matchCapacity = filterMatchesCapacity(filter);
boolean filterMatchStatus = filterMatchesStatus(filter);
return locationMatch && matchCapacity && filterMatchStatus;
}
答案 1 :(得分:1)
用以下代码替换您的代码。使用'&'在您的情况下运营商,因为'&'如果表达式满足给定条件,则返回true,否则结果将为false
public boolean matchFilter(FilterTruck filter){
boolean locationMatch = filterMatchesLocation(filter);
boolean matchCapacity = filterMatchesCapacity(filter);
boolean filterMatchStatus = filterMatchesStatus(filter);
return locationMatch && matchCapacity && filterMatchStatus;
}
答案 2 :(得分:1)
删除所有if
条件并从方法中返回以下内容
return (locationMatch && matchCapacity && filterMatchStatus);
答案 3 :(得分:1)
与其他答案类似,但是更短的形式(并且它有一个退出点!):
public boolean matchFilter(FilterTruck filter)
{
boolean locationMatch = filterMatchesLocation(filter);
boolean matchCapacity = filterMatchesCapacity(filter);
boolean filterMatchStatus = filterMatchesStatus(filter);
return (locationMatch && matchCapacity && filterMatchStatus)
}
答案 4 :(得分:0)
public boolean matchFilter(FilterTruck filter){
boolean locationMatch = filterMatchesLocation(filter);
boolean matchCapacity = filterMatchesCapacity(filter);
boolean filterMatchStatus = filterMatchesStatus(filter);
return locationMatch && matchCapacity && filterMatchStatus;
}
代码最小化。谢谢@Deepak。基本上你在这里说只有当所有3个变量都为真时才返回true。如果一个为假,则语句返回false(布尔代数)
答案 5 :(得分:0)
试试这段代码:
public boolean matchFilter(FilterTruck filter){
return filterMatchesLocation(filter) && filterMatchesCapacity(filter) && filterMatchesStatus(filter);
}