繁体   English   中英

检查列表是否正确

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

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