我是编程并尝试创建一个迭代列表并返回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?
答案 0 :(得分:3)
以下是一个干净的逻辑:
public boolean vegStatus(){
for(PizzaTopping topping : topList) {
if(!topping.isVeg())
return false;
}
return true;
}
检查所有Toppings
,如果其中任何一个不是Veg,它会立即返回false
并且不会检查其他人(不必,对?)。如果它检查所有这些并且它们都不是Veg,它将返回true
。
答案 1 :(得分:0)
请记住,当浇头不是素食时,你不需要关心其余的浇头,没有什么可以改变比萨饼的状态。因此,无需检查其余部分。 return 只是打破了所有循环。如果没有什么东西能让素食主义者不喜欢披萨,你知道它必须是素食主义者。
public boolean vegStatus(){
for(PizzaTopping topping : topList){
if( !topping.isVeg() ) {
return false;
}
}
return true;
}
答案 2 :(得分:0)
public boolean vegStatus(){
boolean veg1 = false;
for(PizzaTopping topping : topList){
if( (topping.isVeg() == true )) {
veg1 = true;
}
else {
return false;
}
}
return veg1;
}
答案 3 :(得分:0)
您应该将veg1
变量初始化为true,并且只有在找到不适合素食者的顶部时才会更改它。
public boolean vegStatus(){
boolean veg1 = true;
for(PizzaTopping topping : topList){
if(topping.isVeg() == false) {
veg1 = false;
}
}
return veg1;
}
答案 4 :(得分: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.
}
答案 5 :(得分: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..
}
如果您有任何疑问,可以再问一次......