从本质上讲,我创建了递归方法并认为自己完成了该方法,但是无论做什么我都会遇到相同的错误!谁能告诉我我所缺少的。错误是“ Taco类型的eatTaco(Taco)方法不适用于参数(int)”。
//recursive method
public static int eatTaco(Taco t) {
if (t.getOunces() == 0) {
System.out.println("Done");
}
else {
System.out.println("There are " + t.getOunces() + " of " + t.getType() + " taco remaining.");
return eatTaco(t.getOunces() - 1);
}
}
答案 0 :(得分:1)
此方法签名表示eatTaco
以Taco
对象作为参数。
public static int eatTaco(Taco t)
但是当您调用它时,您传入一个整数值。
return eatTaco(t.getOunces() - 1);
您需要一种从炸玉米饼中减去盎司的方法,然后然后再次致电eatTaco
。像这样:
System.out.println("There are " + t.getOunces()...
t.setOunces(t.getOunces() - 1);
return eatTaco(t);
答案 1 :(得分:1)
函数eatTaco(Taco t)
需要一个类型为taco的参数。递归调用函数时,将调用eatTaco(t.getOunces() - 1)
。如函数所期望的那样,这将返回int而不是Taco。
答案 2 :(得分:-1)
此行有错误-
return eatTaco(t.getOunces() - 1);
因为eatTaco接受Taco作为参数,而t.getOunces()-1返回一个整数。
也许将其更改为eatTaco(t.reduceOunces());
在Taco类中-
void reduceOunces(){ this.ounces - 1;}