随附的代码组织不当。重做它的目标是它具有更精细的结构并远离过剩。为了帮助消除多余的问题,请将代码转换为一个名为“使用”的策略,该策略确认两个参数:一个是舒适的扫描仪,另一个是单个个人姓名的字符串,并打印有关该个人的合适数据'的账单。您的技术可以被调用两次(一次用于John,一次用于Jane),以复制第一个代码的行为。
public static void main (String [] args) {
Scanner console = new Scanner(System.in);
int numBills1 = spending(console, "John");
int numBills2 = spending(console, "Jane");
System.out.println("John needs " + numBills1 + " bills");
System.out.println("Jane needs " + numBills2 + " bills");
}
public static int spending(Scanner console, String name) {
System.out.print("How much will " + name + " be spending? ");
double amount = console.nextDouble()
System.out.println();
int numBills = (int) (amount / 20.0);
if (numBills * 20.0 < amount) {
numBills++;
}
return numBills;
}
错误
Return types do not match.
expected return type: void
your return type was: int
答案 0 :(得分:1)
我认为错误信息非常清楚。验证器希望您的帮助器方法不返回任何内容(具有void
返回类型),但您的方法返回int
。
说明确实说帮助方法应该进行打印,所以只需将代码移到spending
方法中,更改返回类型,就可以了。