Javaの数値には、2つの種類があります。
-6、0、1、25、976、-500000などがあります。-20.4、0.1、2.72、16.984025、1024.0などがあります。Javaで最もよく使われる数値型は、intとdoubleです。
intは32ビットの整数で、doubleは64ビットの小数です。
計算には、標準の算術演算子を使います。
数値の比較には、標準の比較演算子(例:5 > 4や4 <= 5)や、等値演算子(==)、不等値演算子(!=)を使います。
Javaの数値変換には、2つの種類があります。
intはdoubleよりも精度が低いため、intからdoubleへの変換は安全で、暗黙的な変換になります。
一方、doubleからintへの変換ではデータが失われる可能性があるため、明示的な変換が必要です。
if-else文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節の条件が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時間あたりの生産率を計算するCarsAssemble.productionRatePerHour()メソッドを実装しましょう。
CarsAssemble.productionRatePerHour(6)
// => 1193.4
戻り値はdoubleであることに注意してください。
1分あたりに何台の動作する車が生産されるかを計算するCarsAssemble.workingItemsPerMinute()メソッドを実装しましょう。
CarsAssemble.workingItemsPerMinute(6)
// => 19
戻り値はintであることに注意してください。