java - Java:Payroll 类的决策结构中的返回语句?
问题描述
我必须创建一个名为 Payroll 的类和一个 PayrollDemo 类来配合它。
到目前为止,这是我的薪资类代码:
public class Payroll {
private double hoursWorked, payRate;
public Payroll() {
hoursWorked = 0.0;
payRate = 0.0;
}
public void setHoursWorked(double hours) {
hoursWorked = hours;
}
public void setPayRate(double rate) {
payRate = rate;
}
public double getHoursWorked() {
return hoursWorked;
}
public double getPayRate() {
return payRate;
}
public String calcPay() {
if (hoursWorked <= 40) {
double grossPay = hoursWorked * payRate;
System.out.println("Regular Pay\n============\nHours: " + getHoursWorked() + "\nRate: $" + getPayRate() + "Gross Pay = $" + grossPay);
} else if (hoursWorked > 40) {
double grossPay = (40 * payRate) + ( (hoursWorked - 40) * payRate * 1.5 );
System.out.println("Pay With Overtime\n=================\nHours: " + getHoursWorked() + "\nRate: $" + getPayRate() + "Regular Pay = $" + (40 * payRate) + "\nOvertime Hours = " + (hoursWorked - 40) + "\nOvertime Pay Rate = $" + (payRate * 1.5) + "Overtime Pay = $" + ( (hoursWorked - 40) * payRate * 1.5 ) + "Gross Pay = $" + grossPay);
}
}
}
问题是我收到一个错误:缺少返回语句。我尝试用 return 替换这两个 Println ,但这没有用。所以我只是想知道如何修复程序。
解决方案
您需要一个默认返回值。编译器需要知道无论如何都会返回某些东西 -else if
即使您可能知道逻辑是合理的,它也不“喜欢”。
但是,您可以这样做:
if (hoursWorked <= 40) {
// return something
} else {
// return something
}
或者如果你想保留你的 else-if:
if (hoursWorked <= 40) {
// return something
} else if (hoursWorked > 40) {
// return something
}
return defaultString;
推荐阅读
- c# - 如何在 GridView 中管理大量数据
- javascript - 如何在将 Json 转换为 CSV 数据然后使用 NodeJS 插入 mySQL 后消除标题插入 mySQL 表
- replace - 仅在特定列中查找和替换
- neural-network - InvalidType:执行了无效操作
- reactjs - 将对象从 React 传递到 Express 并创建新的 Airtable 记录
- mysql - 根据先前的自动增量值
- sql-server-2017 - SQL Server TDE 加密
- python - 如何在 Django 中对 PasswordReset 执行附加操作
- python - 如何区分 minimum_squares() 函数中的关键字参数?
- javascript - 如何使用正则表达式搜索带括号的字符串