我目前正在学习方法和使用方法。在决定将哪些内容放入参数时,有时会让我产生困惑。我有一些代码,我创建了三个方法,并且都是对应的。我必须为这个程序做的是显示一些服务和价格,并询问用户他/她是否愿意。如果他们说是,价格会加起来直到数组结束。我遇到麻烦的部分是如何在第三种方法中从主要价格中获取价格。我知道我应该使用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是变量的无效类型,非常令人困惑。
答案 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;