我正在学习 Java 课程,但我们还没有正式学习 if 语句。我在学习的时候看到这个问题:
编写一个名为 pay 的方法,它接受两个参数:一个代表助教工资的实数,一个代表助教本周工作时数的整数。该方法应该返回付给TA多少钱。例如,调用 pay(5.50, 6) 应返回 33.0。对于超过 8 小时的任何时间,助教应获得正常工资 1.5 倍的“加班”工资。例如,调用 pay(4.00, 11) 应返回 (4.00 * 8) + (6.00 * 3) 或 50.0。
不使用 if 语句如何解决这个问题?到目前为止,我已经得到了这个,但我仍坚持正常工资:
public static double pay (double salary, int hours) {
double pay = 0;
for (int i = hours; i > 8; i --) {
pay += (salary * 1.5);
}
}
避免直接使用流控制语句,例如if
or while
您可以使用Math.min
and Math.max
。对于这个特定问题,使用循环也不会有效。
从技术上讲,它们可能使用 if 语句或等效语句,但您已经进行的许多其他标准库调用也是如此:
public static double pay (double salary, int hours) {
int hoursWorkedRegularTime = Math.min(8, hours);
int hoursWorkedOverTime = Math.max(0, hours - 8);
return (hoursWorkedRegularTime * salary) +
(hoursWorkedOverTime * (salary * 1.5));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)