public class HurdalQuentonA2Q1 {
public static void main(String[] args) {
double kgs ;
double lbs ;
double convertLBtoKG = convertLBtoKG(kgs, lbs) ;
}
static double convertLBtoKG(double lbs) {
return lbs * 0.454 ;
}
static double readWeight() {
Scanner input = new Scanner(System.in) ;
System.out.println("Enter your preferred system of weight measurement, k(for kg) or, p(for lb)") ;
String userinput = input.nextLine() ;
if(userinput == "p") {
Scanner keyboard = new Scanner(System.in) ;
System.out.println("Enter your dog's weight in lbs") ;
double lbs = keyboard.nextDouble() ;
double kgs = convertLBtoKG ;
编译时会弹出一个错误说明
method convertLBtoKG in class HurdalQuentonA2Q1 cannot be applied to given types
required: double
found: double,double
我不知道是什么导致了这个
答案 0 :(得分:1)
convertLBtoKG
方法只有1个参数,但是你用2个参数调用它。
static double convertLBtoKG(double lbs)
将您的方法调用更改为:
double convertLBtoKG = convertLBtoKG(lbs) ;
答案 1 :(得分:1)
您的convertLBtoKG
方法:
static double convertLBtoKG(double lbs) {
定义为需要一个double
参数(double lbs
)并返回double
(double
后面的static
)的方法。要使用它,你必须以与配置文件一致的方式调用它:给它一个double
参数,然后用方法调用的值做一些事情,这将是方法回报。因此,而不是
double convertLBtoKG = convertLBtoKG(kgs, lbs) ;
你想要
lbs = convertLBtoKG(kgs); // THIS IS STILL WRONG, SEE BELOW
(不要说double lbs = ...
,因为您之前已经宣布过double lbs;
。
此外,在方法调用中使用之前,您需要为kgs
指定一些内容。
编辑:虽然我试图解决导致错误的行,但它完全错了,并且它不属于那里。实际进行转换的代码位于readWeight
,但您永远不会调用readWeight
。您需要向调用它的main
添加一些内容。然后,在readWeight
中,而不是此行:
double kgs = convertLBtoKG ;
这是你想要调用convert方法的地方:
double kgs = convertLBtoKG(lbs);
我认为您需要仔细研究程序流程的工作原理。您的main
计划必须致电readWeight
才能获取readWeight
中的代码;由于您已convertLBtoKG
main
和readWeight
放置{{1}},因此该语言无法自动汇总。
答案 2 :(得分:0)
convertLBtoKG的函数声明只允许传递一个参数,但是你传递的是lbs和kgs。
答案 3 :(得分:0)
您将两个double
值传递给仅接受单个double
参数的方法。重载方法以创建一个接受两个双精度的方法,或者使用适当的参数调用它。
答案 4 :(得分:0)
您的方法只获得1个参数double。 但是你在这里调用了 convertLBtoKG(kgs,lbs) 2参数。
答案 5 :(得分:0)
编译时,编译器将尝试匹配参数的数量及其类型。在这种情况下,您使用两个参数进行调用,但仅接受一个参数。