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