![](/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.