2013-12-19 48 views
0

我是新来的编程,并试图创建一个迭代列表并返回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。

+1

只是返回假第二你发现一个不是蔬菜的打顶。 –

回答

3

下面是一个干净的逻辑:

public boolean vegStatus(){ 
    for(PizzaTopping topping : topList) { 
     if(!topping.isVeg()) 
      return false; 
    } 

    return true; 
} 

它检查所有Toppings,如果他们中任何一个不吃素,它返回false马上和不检查其他人(不必,对吧?)。如果它检查了所有这些,并且它们都不是Veg,它将返回true

0

只要记住,当顶部不素食,你不需要关心其余的配料,没有什么可以改变比萨后的状态。因此,没有必要检查其余的。 返回简单地打破所有循环。如果素食者不喜欢的东西没有污染比萨饼,你知道它必须是素食主义者。

public boolean vegStatus(){ 

    for(PizzaTopping topping : topList){ 
     if(!topping.isVeg()) { 
      return false; 
     } 

    } 
    return true; 
} 
0
public boolean vegStatus(){ 

    boolean veg1 = false; 

    for(PizzaTopping topping : topList){ 
     if((topping.isVeg() == true)) { 
      veg1 = true; 
     } 
     else { 
      return false; 
     } 
    } 
    return veg1; 
} 
0

您应该veg1变量初始化为真,内环路只有改变它,如果你找到一个摘心是不适合素食者。

public boolean vegStatus(){ 

    boolean veg1 = true; 

    for(PizzaTopping topping : topList){ 
     if(topping.isVeg() == false) { 
      veg1 = false; 
     } 
    } 
    return veg1; 
} 
0

做这样

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. 
} 
+1

无需检查是否为真:-) –

0

你应该做这样的....

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.. 
} 

如果您有任何疑问,那么你可以再问...