You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java动态获取用户输入及解决方法调用参数不匹配错误

问题解决与代码修正

错误原因

出现The method mile(double, double, double) in the type P1 is not applicable for the arguments()错误,是因为mile方法定义要求传入3个double类型参数,但调用时mile()未传任何参数,参数不匹配导致报错。此外原方法中mpg是通过miles/gallons计算得出的,不需要作为参数传入,属于冗余参数。

修改步骤

  • 重构mile方法:移除不需要的mpg参数,只保留miles和gallons作为输入参数,在方法内部计算mpg。
  • 调用mile方法时,传入用户输入的miles和gallons变量,保证参数匹配。
  • 修正代码中的拼写错误:milkes改为miles,uses改为used,修正输出文本的语法问题。
  • 增加对用户姓名的输出,让程序逻辑更完整。

修正后的完整代码

package p1;

import java.util.Scanner;

public class P1 {
    // 重构方法,只接收miles和gallons参数
    public static void mile(double miles, double gallons) {
        double mpg = miles / gallons;
        System.out.println("You drove " + miles + " miles");
        System.out.println("You used " + gallons + " gallons");
        System.out.println("The mpg is " + mpg);
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your name : ");
        String name = sc.nextLine();
        // 输出用户姓名
        System.out.println("Hello, " + name + "!");
        
        System.out.println("Enter the value of miles:");
        double miles = sc.nextDouble();
        System.out.println("Enter the value of gallons:");
        double gallons = sc.nextDouble();
        
        // 传入正确的参数调用方法
        mile(miles, gallons);
        sc.close(); // 关闭Scanner资源
    }
}

说明

  1. 方法参数调整:mpg是计算结果,不需要从外部传入,所以方法只需要接收必要的输入参数miles和gallons。
  2. 参数匹配:调用mile(miles, gallons)时,传入用户输入的两个变量,和方法定义的参数数量、类型完全匹配,解决了报错问题。
  3. 细节优化:修正拼写错误、添加空格让输出更易读、关闭Scanner资源避免资源泄漏,同时增加了姓名输出,让交互更友好。

内容的提问来源于stack exchange,提问作者vishnu97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 20:25:05