トラック
/
Java
Java
/
演習
/
給与計算
給与計算

給与計算

学習演習

はじめに

三項演算子

_三項演算子_は、シンプルな_if/else_文のための、軽量でコンパクトな代替手段です。 通常はreturn文で使われますが、それだけに限りません。たった1行で判断できます。式がtrueなら左の値、falseなら右の値を返します。次のとおりです:

boolean expr = 0 != 200;

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

多くのシンプルな_if/else_式は、_三項演算子_を使って簡略化できます。

説明

この演習では、ある従業員の1か月の給与の総額を計算するためのルールを実装します。International Siderurgy Company(ISC)は、最終的な賃金に影響を与えるさまざまな要素を考慮しながら、従業員の給与を計算する支援を必要としています。

タスクは3つあり、実装にはif/else文ではなく三項演算子を使います。

1. 給与の倍率を求める

salaryMultiplierメソッドを実装します。このメソッドは、従業員が仕事を休んだ日数に応じて給与の倍率を返します。従業員が5日以上休んだ場合は、15%のペナルティを適用します。

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

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

2. 販売した製品のボーナスを計算する

bonusMultiplierメソッドとbonusForProductsSoldメソッドを実装します。ISCは販売した製品1つにつき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を学んでマスターできます。すべて無料です。