トラック
/
Java
Java
/
演習
/
車を組み立てよう!
車を組み立てよう!

車を組み立てよう!

学習演習

はじめに

数値

Javaの数値には、2つの種類があります。

  • 整数:小数点以下の桁がない数値(整数)です。 例としては、-6、0、1、25、976、-500000などがあります。
  • 小数:小数点以下に0桁以上の数字がある数値です。 例としては、-20.4、0.1、2.72、16.984025、1024.0などがあります。

Javaで最もよく使われる数値型は、intとdoubleです。 intは32ビットの整数で、doubleは64ビットの小数です。

計算には、標準の算術演算子を使います。 数値の比較には、標準の比較演算子(例:5 > 4や4 <= 5)や、等値演算子(==)、不等値演算子(!=)を使います。

Javaの数値変換には、2つの種類があります。

  1. 暗黙的な変換:データが失われることはなく、特別な構文も必要ありません。
  2. 明示的な変換:データが失われる可能性があり、_キャスト_という形で追加の構文が必要です。

intはdoubleよりも精度が低いため、intからdoubleへの変換は安全で、暗黙的な変換になります。 一方、doubleからintへの変換ではデータが失われる可能性があるため、明示的な変換が必要です。

if-else文

_if-then_文

Javaで最も基本的な制御フローの文が、_if-then_文です。 この文は、特定の条件がtrueのときにだけ、あるコードのまとまりを実行するために使います。 _if-then_文は、if節を使って書きます。

class Car {
    void drive() {
        // the "if" clause: the car needs to have fuel left to drive
        if (fuel > 0) {
            // the "then" clause: the car drives, consuming fuel
            fuel--;
        }
    }
}

上の例では、車に燃料が残っていない場合、Car.driveメソッドを呼び出しても何も起こりません。

_if-then-else_文

_if-then-else_文は、if節の条件がfalseになったときの、もう1つの実行の道筋を用意します。 このもう1つの道筋はif節のあとに続き、else節を使って書きます。

class Car {
    void drive() {
        if (fuel > 0) {
            fuel--;
        } else {
            stop();
        }
    }
}

上の例では、車に燃料が残っていない場合、Car.driveメソッドを呼び出すと、車を止める別のメソッドが呼び出されます。

_if-then-else_文では、else if節を使って複数の条件を扱うこともできます。

class Car {
    void drive() {
        if (fuel > 5) {
            fuel--;
        } else if (fuel > 0) {
            turnOnFuelLight();
            fuel--;
        } else {
            stop();
        }
    }
}

上の例では、燃料が5以下のときに車を走らせると、車は走りますが、燃料ランプが点灯します。 燃料が0になると、車は走るのを止めます。

説明

この演習では、自動車工場の組み立てラインの生産を分析するコードを書きます。組み立てラインの速度は、0(停止)から10(最大)までの範囲で設定できます。

最も低い速度(1)では、1時間に221台の車が生産されます。生産台数は速度に比例して増加します。つまり、速度を4に設定すると、1時間に4 * 221 = 884台の車が生産される計算になります。ただし、速度が上がるほど、欠陥のある車が生産される可能性が高くなり、そうした車は廃棄しなければなりません。次の表は、速度が成功率にどう影響するかを示しています。

  • 1から4:成功率100%。
  • 5から8:成功率90%。
  • 9:成功率80%。
  • 10:成功率77%。

取り組む課題は2つあります。

1. 1時間あたりの生産率を計算する

組み立てラインの現在の速度と成功率を考慮して、1時間あたりの生産率を計算するCarsAssemble.productionRatePerHour()メソッドを実装しましょう。

CarsAssemble.productionRatePerHour(6)
// => 1193.4

戻り値はdoubleであることに注意してください。

2. 1分あたりに生産される、動作する車の台数を計算する

1分あたりに何台の動作する車が生産されるかを計算するCarsAssemble.workingItemsPerMinute()メソッドを実装しましょう。

CarsAssemble.workingItemsPerMinute(6)
// => 19

戻り値はintであることに注意してください。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Java Exercism

車を組み立てよう!を始める準備はできましたか?

Exercismに登録すれば、26個のコンセプト158個の演習、そして本物の人間によるメンタリングとともに、Javaを学んでマスターできます。すべて無料です。