Java中的方法 - Void

时间:2015-04-06 12:31:58

标签: java methods

我目前正在学习方法和使用方法。在决定将哪些内容放入参数时,有时会让我产生困惑。我有一些代码,我创建了三个方法,并且都是对应的。我必须为这个程序做的是显示一些服务和价格,并询问用户他/她是否愿意。如果他们说是,价格会加起来直到数组结束。我遇到麻烦的部分是如何在第三种方法中从主要价格中获取价格。我知道我应该使用void方法,因为我没有返回任何东西,只是打印出价格给用户。 下面是我对这个程序的代码:

static Scanner keyboard = new Scanner(System.in);

public static void main(String[] args) {
    System.out.println("What automobile make do you own?");
    Scanner keyboard = new Scanner(System.in);

    String name = keyboard.nextLine();
    make(name);

    double price = carMaintenance(name);
    finalPrice(price);

}

// First Method
public static void make(String name) {
    System.out.println("Hello! We will be happy to service your " + name
            + " automobile today!");
}

// Second Method
public static double carMaintenance(String name) {
    String[] services = { "Oil Change", "Tire Rotation", "Air Filter",
            "Check Fluids" };
    double[] prices = { 39.99, 49.99, 19.99, 10.99 };
    double Total = 0;

    for (int i = 0; i < services.length; i++) {
        System.out.println("Do you want a " + services[i] + " for your "
                + name + " " + prices[i] + "? (y/n)");
        String answer;
        answer = keyboard.nextLine();
        if (answer.equals("y"))
        {
            Total = Total + prices[i];
        }
// Third method
    public static void finalPrice ( ? )

具体来说,这部分我遇到了麻烦:

//第三种方法         public static void finalPrice(double price)

问题是finalPrice是变量的无效类型,非常令人困惑。

3 个答案:

答案 0 :(得分:2)

您必须更改finalPrice()以接受double参数:

public static void finalPrice(double price) { ... }

并将carMaintenance()返回的值传递给finalPrice()

double price = carMaintenance(name);
finalPrice(price);

注意我假设您忘记粘贴carMaintenance()方法的其余部分。当然,最后它应该有return Total语句。

答案 1 :(得分:0)

你的第二种方法缺少一个return语句。您可以将总数返回到main,然后将其发送到第三种方法,如下所示:

public static void main(String[] args) {
    System.out.println("What automobile make do you own?");
    Scanner keyboard = new Scanner(System.in);

    String name = keyboard.nextLine();
    make(name);

    double finalPrice = carMaintenance(name);
    printFinalPrice(finalPrice);
}

//first method code here

public static double carMaintenance(String name) {
    //second method code here, plus:
    return total;
}

// Third method
public static void printFinalPrice(double finalprice) {
    System.out.println("Your final price is " + finalprice);
}

答案 2 :(得分:0)

从carMaintance传递给finalPrice

double finalPriceDbl = carMaintenance(name);
finalprice(finalPriceDbl);

并在finalPrice中接受double作为参数

public static void finalPrice ( double finalPrice );

你也应该使用return statemenet

从carMaintenance返回值
return Total;