學習軌道
/
Java
Java
/
練習
/
汽車,組裝!
汽車,組裝!

汽車,組裝!

學習練習

簡介

數字

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 有兩種數值轉換:

  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時。 這條替代的執行路徑接在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%。

你有兩項任務。

1. 計算每小時的產量

實作CarsAssemble.productionRatePerHour()方法,計算組裝線每小時的產量,並將組裝線目前的速度與成功率納入考量:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

請注意,回傳的值是double。

2. 計算每分鐘生產的正常運作車輛數量

實作CarsAssemble.workingItemsPerMinute()方法,計算每分鐘生產多少輛正常運作的車:

CarsAssemble.workingItemsPerMinute(6)
// => 19

請注意,回傳的值是int。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Java Exercism

準備好開始 汽車,組裝! 了嗎?

註冊 Exercism,透過 26 個概念158 個練習 和真人引導來學習並精通 Java,全部免費。