簡體   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