作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,这是第二部分。我重组了代码,但现在我无法找到一种方法来返回 empWeeklyPay 而不将其初始化为零。如果我将其初始化为零,那么我的工资将永远为零?有人能想到我能做些什么吗?
public double getWeeklyPay()//Call the getWeeklyHours method of the Emp's timecard to get the total
//hours worked and then multiply the returned value by the emp's hourly rate and return the value.
{
TimeCard empTimeCard = timeCard;
double empWeeklyPay;
double totalOtHours;
double totalRegHours;
int i = 0;
while(i <= empTimeCard.NUMDAYS && empTimeCard.getHoursByDay(i) > 8)
{
double empHourlyRate = getHourlyRate();
double otHours = 0;
double regHours = 0;
double sumOtHours = 0;
int sumRegHours = 0;
//grabbing the overtime and reghours and storing them
otHours = empTimeCard.getHoursByDay(i) % 8;
regHours = empTimeCard.getHoursByDay(i) - otHours;
sumOtHours += otHours;
sumRegHours += regHours;
double tmpBasePay = (sumRegHours * empHourlyRate) + (sumOtHours * empHourlyRate * 1.5);
if(Integer.toString(getEmployeeId()).charAt(0) == '0' || Integer.toString(getEmployeeId()).charAt(0) == '2'
|| Integer.toString(getEmployeeId()).charAt(0) == '9')
//Java reads in 1010 so need to convert to a string to do a count on the value.
{
tmpBasePay += (tmpBasePay * .10);
i++;
}
else if(Integer.toString(getEmployeeId()).charAt(0) == '3')
{
tmpBasePay -= (tmpBasePay *.10);
i++;
}
else if(Integer.toString(getEmployeeId()).charAt(0) == '8')
{
tmpBasePay += (tmpBasePay * .20);
i++;
}
totalRegHours = regHours;
totalOtHours = sumOtHours;
if(totalRegHours > 34)
{
tmpBasePay -= (tmpBasePay * .06);
//empWeeklyPay = tmpBasePay;
empWeeklyPay = tmpBasePay;
}
else
{
empWeeklyPay = tmpBasePay;
}
}
return empWeeklyPay;// <---need to return back this value.
最佳答案
您的第一个 while
循环 while 只执行一次迭代,因为它总是遇到 return
关键字。 return
将使您摆脱 while
循环和您的 getWeekPay()
方法。
您只需在方法末尾返回您的 empWeeklyPay
变量,因此这里只有最后一个返回有用。方法的结尾应如下所示:
if(RegHours > 34) {
empBasePay -= (empBasePay * .06);
empWeeklyPay = empBasePay;
} else {
empWeeklyPay = empBasePay;
}
return empWeeklyPay;
编辑
为什么你总是得到 0:
double empBasePay = (RegHours * empHourlyRate) + (otHours * empHourlyRate * 1.5);
由于 RegHours
和 otHours
等于 0,您不妨这样写:
double empBasePay = 0;
由于该方法的其余部分基于 empBasePay
的基值(0),因此您的方法将始终返回 0。
关于java - 我的 java while 循环没有返回每周工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9523036/
这是电话面试中提出的第一个问题? 员工表有 ID、姓名、薪水、部门列。给我按部门列出的最高工资。 我的答案:按部门从员工组中选择最高(薪水)、部门。 后续问题:现在,在上面的查询中,我只想获取平均工资
当我编译它时,我收到错误,操作符号有问题,行代码错误: Pay = (40 * Rate) + (( Hours - 40) * (1.5 * Rate)); 下面是我使用的完整代码。 import
我是一名优秀的程序员,十分优秀!