代码行上的 StackOverFlow 错误
StackOverFlow Error on line of code
我正在学习编程 class 并设置有关计算薪水的代码。除第 11 行外,一切正常。我最终遇到了 Whosebug 错误。
但是当我删除这行代码时
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;
}
我正在学习编程 class 并设置有关计算薪水的代码。除第 11 行外,一切正常。我最终遇到了 Whosebug 错误。
但是当我删除这行代码时
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;
}