[英]Check List for true or false
我是编程的新手,试图创建一种遍历列表并返回true或false的方法,以检查披萨是否适合素食主义者。 只有列表中的所有浇头都适合素食者才是正确的。
这是我的方法:
public boolean vegStatus(){
boolean veg1 = false;
for(PizzaTopping topping : topList){
if( (topping.isVeg() == true )) {
veg1 = true;
}
else if(topping.isVeg() == false) {
veg1 = false;
}
}
return veg1;
}
此方法不起作用,它会产生错误的答案。 我如何更改它,以便它显示列表中的所有浇头,并且只有在所有素食者都适合的情况下才返回true?
以下是一个干净的逻辑:
public boolean vegStatus(){
for(PizzaTopping topping : topList) {
if(!topping.isVeg())
return false;
}
return true;
}
它检查所有Toppings
,如果其中任何一个不是Veg,它立即返回false
,而不检查其他Toppings
(不必,对吗?)。 如果检查所有对象,但都不是Veg,则返回true
。
只需记住,当浇头不是素食主义者时,您无需关心其余的浇头,此后没有什么可以改变比萨的状态。 因此,无需检查其余部分。 return只是打破了所有循环。 如果没有素食主义者不喜欢的披萨污染比萨饼,那您一定知道它一定是素食主义者。
public boolean vegStatus(){
for(PizzaTopping topping : topList){
if( !topping.isVeg() ) {
return false;
}
}
return true;
}
public boolean vegStatus(){
boolean veg1 = false;
for(PizzaTopping topping : topList){
if( (topping.isVeg() == true )) {
veg1 = true;
}
else {
return false;
}
}
return veg1;
}
您应该将veg1
变量初始化为true,并且在循环内仅在找到不适合素食者的veg1
时才对其进行更改。
public boolean vegStatus(){
boolean veg1 = true;
for(PizzaTopping topping : topList){
if(topping.isVeg() == false) {
veg1 = false;
}
}
return veg1;
}
像这样
public boolean vegstatus(){
for(PizzaTopping topping : topList){
if( !topping.isVeg()) {
return false; //Failed so anymore he is not a vegetarian
}
}
return true;// Never failed above condition so he should be vegetarian.
}
你应该这样做....
public boolean vegStatus(){
boolean veg1 = true; // by default its true
for(PizzaTopping topping : topList){
if(topping.isVeg() == false) {
veg1 = false; // if any one id not suitable then its false
}
}
return veg1; // at the end returning the result..
}
如果您有任何疑问,可以再次询问...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.