Java 中有兩種不同的數字型別:
-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 有兩種數值轉換:
由於int的精確度低於double,所以從int轉換成double是安全的,因此屬於隱式轉換。
然而,從double轉換成int可能會遺失資料,所以需要顯式轉換。
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時。
這條替代的執行路徑接在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)下,每小時會生產221輛車。產量會隨速度呈線性增加。所以當速度設為4時,每小時應該會生產4 * 221 = 884輛車。不過,速度越高,就越可能生產出瑕疵車,而這些車之後必須被丟棄。下表顯示速度如何影響成功率:
1到4:成功率 100%。5到8:成功率 90%。9:成功率 80%。10:成功率 77%。你有兩項任務。
實作CarsAssemble.productionRatePerHour()方法,計算組裝線每小時的產量,並將組裝線目前的速度與成功率納入考量:
CarsAssemble.productionRatePerHour(6)
// => 1193.4
請注意,回傳的值是double。
實作CarsAssemble.workingItemsPerMinute()方法,計算每分鐘生產多少輛正常運作的車:
CarsAssemble.workingItemsPerMinute(6)
// => 19
請注意,回傳的值是int。