方法中的参数和参数有问题

Having Issues With Arguments and Parameters In Methods

我在最近的作业中遇到了这段代码的问题。该作业向用户显示汽油价格,询问他们想要什么类型以及多少加仑。该程序 return 将总价设为双倍。我在方法 calculatePrice 中创建了一个开关,它会 return 一个答案。我在收集该信息并以某种方式将其打印到方法 displayTotal 时遇到了问题。此外,displayTotal 必须是双精度数。感谢您的帮助。

public static double calculatePrice(int type, double gallons){

       switch (type){

      case 1:
        System.out.printf("You owe: %.2f" , gallons * 2.19);
        break;
      case 2: 
        System.out.printf("You owe: %.2f",  gallons * 2.49);
        break;
      case 3:
        System.out.printf("You owe: %.2f", gallons * 2.71);
        break;
      case 4:
        System.out.printf("You owe: %.2f", gallons * 2.99);
       }
    return type; 

     }

    public static void displayTotal(double type){


      System.out.println(type);


     }
   }

看起来像是一个简单的错误 - 您 returning type 来自 calculatePrice,而不是计算值:

return type;

您想要的是计算结果和 return 那个结果,而不是 type。此外,如果您想先打印它,将它放入局部变量中会有所帮助。示例:

public static double calculatePrice(int type, double gallons) {
    double result = 0;
    switch (type) {
        case 1:
            result = gallons * 2.19;
        break;
        case 2:
            result = gallons * 2.49;
        break;
        case 3:
            result = gallons * 2.71;
        break;
        case 4:
            result = gallons * 2.99;
    }
    System.out.printf("You owe: %.2f", result);
    return result;
}

您需要将加仑与 price/gallon 相乘的结果保存在一个变量中 return。

public static double calculatePrice(int type, double gallons){
    switch (type) {
        case 1:
            return gallons * 2.19;
        case 2: 
            return gallons * 2.49;
        case 3:
            return gallons * 2.71;
        case 4:
            return gallons * 2.99;
     } 
}

public static void displayTotal(double type, double gallons){
    double totalPrice = calculatePrice(type, gallons);
    System.out.printf("You owe: %.2f", totalPrice);
}