轨道
/
Java
Java
/
练习
/
薪资计算器
薪资计算器

薪资计算器

学习练习

简介

三元运算符

_三元运算符_是一种轻量、紧凑的写法,可以替代简单的 if/else 语句。 它通常用在返回语句中(但不限于此),只需一行就能完成判断:如果表达式为 true,就返回左边的值;如果为 false,就返回右边的值,如下所示:

boolean expr = 0 != 200;

// Ternary statement
int value = expr ? 22 : 33;
// => 22

很多简单的 if/else 表达式都可以用_三元运算符_来简化。

说明

在本练习中,你将实现计算员工一个月总薪资的规则。 国际钢铁公司(ISC)需要有人帮忙计算员工薪资,并要考虑到各种可能影响最终薪资的因素。

共有三个任务,你应该使用三元运算符而不是 if/else 语句来实现它们。

1. 确定薪资乘数

实现 salaryMultiplier 方法,它根据员工旷工的天数返回薪资乘数。 如果员工旷工至少 5 天,就扣减 15%。

int daysSkipped = 3;
salaryMultiplier(daysSkipped);
// => 1.0

daysSkipped = 7;
salaryMultiplier(daysSkipped);
// => 0.85

2. 计算售出产品的奖金

实现 bonusMultiplier 和 bonusForProductsSold 方法。 ISC 每售出一件产品支付 10 个货币单位,如果员工售出 20 件或更多产品,乘数就提高到 13。 bonusMultiplier 应确定应用哪个乘数,bonusForProductSold 应返回以货币单位计算的总奖金。

int productsSold = 21;
bonusMultiplier(productsSold);
// => 13
bonusForProductsSold(productsSold);
// => 273

productsSold = 5;
bonusMultiplier(productsSold);
// => 10
bonusForProductsSold(productsSold);
// => 50

3. 计算员工的最终薪资

实现 finalSalary 方法。 它应将基本薪资 1000.00 乘以薪资乘数,加上奖金,然后返回结果。 不过,薪资上限为 2000.00。

int daysSkipped = 2;
int productsSold = 3;
finalSalary(daysSkipped, productsSold);
// => 1030.00

productsSold = 90;
finalSalary(daysSkipped, productsSold);
// => 2000.00
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Java Exercism

准备好开始 薪资计算器 了吗?

注册 Exercism,借助 26 个概念158 个练习 和真人导师指导,学习并掌握 Java,全部免费。