![](/img/trans.png)
[英]Operator '==' cannot be applied to 'double[]', 'double
[英](double,int) cannot be applied to (double)
几个小时以来,我一直在绞尽脑汁想弄清楚这一点。
我的主要方法是:
public static void main(String [] args)
{
double payRate;
double grossPay;
double netPay;
int hours;
Scanner input = new Scanner(System.in);
System.out.println("Welcome to the Pay Roll Program");
printDescription();
System.out.print("Please input the pay per hour: ");
payRate = input.nextDouble();
System.out.println("\nPlease input the pay per hour: ");
hours = input.nextInt();
System.out.println("\n");
netPay = computePaycheck(netPay);
System.out.println("The net pay is $" + (netPay));
System.out.println("We hope you enjoyed this program");
System.exit(0);
以及计算netPay的方法
public static double computePaycheck(double payRate, int hours)
{
double grossPay = computePaycheck(payRate*hours);
double netPay = (grossPay - (grossPay *.15));
return netPay;
}
但我收到错误“PayCheck 中的computePaycheck(double,int) 不能应用于(double)”
我有点理解这一点,但我终生无法找到补救措施。
1)您正在调用具有2个参数的函数,同时仅传递1.这将导致编译错误。
2)当你从内部调用computePaycheck时会循环并导致堆栈溢出。
很明显,您设置了 2 个参数,但从主类中您只调用了一个参数。 您应该找到一种同时调用 2 个参数的方法。
netPay = computePaycheck(netPay);
public static double computePaycheck(double payRate,int hours)
“PayCheck中的computePaycheck(double,int)无法应用于(double)”
您的方法有两个参数,一个double和一个int。
你只能用这两个来打电话(你错过了通话中的小时数)。
netPay = computePaycheck(payRate,hours);
double grossPay = payRate *小时;
在您的computePaycheck
方法中,您有以下行:
double grossPay = computePaycheck(payRate*hours);
这是将一个参数( payRate
和hours
的乘积)传递给computePaycheck
函数,该函数需要两个参数。 看起来你想说:
double grossPay = computePaycheck(payRate, hours);
但是你需要小心! 这将导致您的程序无限重复! 您将需要确定如何在不调用此函数的情况下计算总工资,因为如果您在其自身内递归调用它,则不会返回它的条件。
您的方法有两个参数 - double payRate
和int hours
,但是当您在main方法中调用computePaycheck
时,您只指定了一个double
。
目前尚不清楚您打算发生什么,但不匹配的参数会让您知道您的程序出了什么问题。
你的computePaycheck
方法的第一个语句用一个参数(一个double)调用computePaycheck
,而computePaycheck用两个参数(一个double和一个int)。 这就是您的代码无法编译的原因。
如果你通过使用double grossPay = computePaycheck(payRate, hours);
来“修复”这个double grossPay = computePaycheck(payRate, hours);
相反,这将编译,但你会得到无限的递归! 你不是只想做double grossPay = payRate*hours;
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.