[英]StackOverFlow Error on line of code
我正在上編程班,並設置有關計算薪水的代碼。 除第11行外,其他所有程序都正常運行。我最終遇到了stackoverflow錯誤。
但是,當我刪除這一行代碼時
double weeksWages = pay(50, 10); // weeksWages is 550
錯誤消失了,但是運行程序時,我得到的是10而不是預期的550。 這可能真的很容易解決,但不確定。 謝謝!
這是完整的代碼:
import java.util.Scanner;
import static java.lang.System.out;
public class ComputePayCheck {
static Scanner in = new Scanner(System.in);
public static double pay(int hours, double hourlyRate) {
int otHours = (hours > 40) ? hours - 40 : 0;
double weeksWages = pay(50, 10); // weeksWages is 550
return otHours;
}
public static void main(String[] args) {
out.print("Enter hours worked: ");
int hours = in.nextInt();
out.print("Enter hourly rate: ");
double hourlyRate = in.nextDouble();
out.print("Week's Salary is: " + pay(hours, hourlyRate));
}
}
之所以會出現堆棧溢出,是因為您的pay
函數正在遞歸地調用自身而沒有盡頭。 我不確定您的方法的確切預期行為是什么,但是嘗試這樣的方法。
public static double pay(int hours, double hourlyRate) {
int otHours = (hours > 40) ? hours - 40 : 0;
return hourlyRate * otHours;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.