Java返回变量报错求助:调用area方法时实参与形参不匹配
解决Java方法调用参数不匹配的错误
你遇到的这个错误很典型——方法调用时的参数列表和方法定义不匹配。咱们先看编译器给出的错误提示:
exit status 1 Main.java:18: error: method area in class Main cannot be applied to given types;
String ara = area();
^
required: double,double
found: no arguments
reason: actual and formal argument lists differ in length
1 error
这个提示已经把问题说透了:你定义的area方法需要接收两个double类型的参数(长度和宽度),但在main方法里调用area()时没有传任何参数,所以编译器直接报错了。
再看你的代码:
import java.util.*; public class Main { public static void main(String[] args) { System.out.println("Enter Length"); Scanner input = new Scanner (System.in); double L = input.nextDouble(); Scanner input2 = new Scanner (System.in); // 这里不需要创建第二个Scanner System.out.println("Enter Width: "); double W = input.nextDouble(); String ara = area(); // 问题核心:没传必要参数 System.out.println(ara); } public static String area(double L, double W) { double total = L*W; String ara = String.valueOf(total); return ara; } }
给你两个关键的修改点,搞定这个问题:
修正方法调用,传递必要参数
在main方法里调用area时,把你已经获取到的长度L和宽度W传进去,改成这样:String ara = area(L, W);移除多余的Scanner对象
你不需要创建两个Scanner实例,一个就可以处理所有输入操作,删掉Scanner input2 = new Scanner (System.in);这一行,避免不必要的资源浪费。
修改后的完整代码如下:
import java.util.*; public class Main { public static void main(String[] args) { System.out.println("Enter Length"); Scanner input = new Scanner (System.in); double L = input.nextDouble(); System.out.println("Enter Width: "); double W = input.nextDouble(); String ara = area(L, W); // 传递L和W作为参数 System.out.println(ara); } public static String area(double L, double W) { double total = L*W; String ara = String.valueOf(total); return ara; } }
另外给你一个小优化建议:如果没必要返回String类型,其实可以让area方法直接返回double类型的面积,代码会更简洁:
import java.util.*; public class Main { public static void main(String[] args) { System.out.println("Enter Length"); Scanner input = new Scanner (System.in); double L = input.nextDouble(); System.out.println("Enter Width: "); double W = input.nextDouble(); double area = area(L, W); System.out.println(area); } public static double area(double L, double W) { return L*W; } }
这样修改后,代码就能正常运行,输入长度和宽度后就能得到矩形的面积啦~
内容的提问来源于stack exchange,提问作者Krev
相关产品推荐
相关产品推荐

