编译错误

时间:2014-04-19 19:02:57

标签: java string types return

随附的代码组织不当。重做它的目标是它具有更精细的结构并远离过剩。为了帮助消除多余的问题,请将代码转换为一个名为“使用”的策略,该策略确认两个参数:一个是舒适的扫描仪,另一个是单个个人姓名的字符串,并打印有关该个人的合适数据'的账单。您的技术可以被调用两次(一次用于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

1 个答案:

答案 0 :(得分:1)

我认为错误信息非常清楚。验证器希望您的帮助器方法不返回任何内容(具有void返回类型),但您的方法返回int
说明确实说帮助方法应该进行打印,所以只需将代码移到spending方法中,更改返回类型,就可以了。