學習軌道
/
Go
Go
/
練習
/
購買車輛
購買車輛

購買車輛

學習練習

簡介

比較

在 Go 中,可以使用下列的關係運算子和相等運算子來比較數字。

比較 運算子
等於 ==
不等於 !=
小於 <
小於或等於 <=
大於 >
大於或等於 >=

比較的結果永遠是布林值,所以只會是true或false。

a := 3

a != 4 // true
a > 5  // false

上面的比較運算子也可以用來比較字串。 在這種情況下,會套用字典順序。 例如:

	"apple" < "banana"  // true
	"apple" > "banana"  // false

if敘述

Go 中的條件判斷和其他語言類似。 任何條件運算的底層型別都是bool型別,它的值可以是true或false。 條件判斷經常被用來做為流程控制機制,以檢查各種條件。

若要檢查特定的情況,可以使用if敘述;當底層條件為true時,它就會執行其中的程式碼,就像這樣:

var value string

if value == "val" {
    return "was val"
}

當情況不只一種時,可以用else if和else敘述把多個if敘述串接在一起。

var number int
result := "This number is "

if number > 0 {
    result += "positive"
} else if number < 0 {
    result += "negative"
} else {
    result += "zero"
}

if敘述也可以包含一段簡短的初始化敘述,用來為這個if敘述初始化一個或多個變數。 例如:

num := 7
if v := 2 * num; v > 10 {
    fmt.Println(v)
} else {
    fmt.Println(num)
}
// Output: 14

注意:在初始化敘述中建立的任何變數,都會在if敘述結束之後超出作用域。

說明

在這個練習中,你會寫一些程式碼,幫助你為購買車輛做準備。

你有三個任務:判斷你是否需要駕照、幫你在兩輛車之間做選擇,以及估算中古車可接受的價格。

1. 判斷你是否需要駕駛執照

有些種類的車輛需要駕駛執照才能駕駛。 假設只有"car"和"truck"需要駕照,其他種類都可以無須駕照駕駛。

實作NeedsLicense(kind)函式,它接受車輛種類,並回傳一個布林值,指出該種類的車輛是否需要駕照。

needLicense := NeedsLicense("car")
// => true

needLicense = NeedsLicense("bike")
// => false

needLicense = NeedsLicense("truck")
// => true

2. 在兩輛可能購買的車輛之間做選擇

你評估了手邊可選的車輛。 你成功把選項縮小到兩輛,但需要有人幫你做最後決定。 為此,請實作ChooseVehicle(option1, option2)函式,它接受兩輛車作為引數,並回傳一個決定,其中包含依字典序排在最前面的那個選項。

vehicle := ChooseVehicle("Wuling Hongguang", "Toyota Corolla")
// => "Toyota Corolla is clearly the better choice."

ChooseVehicle("Volkswagen Beetle", "Volkswagen Golf")
// => "Volkswagen Beetle is clearly the better choice."

3. 估算中古車的價格

既然你已經做出決定,你會想確保自己在經銷商那裡拿到合理的價格。 由於你有意購買中古車,價格取決於車齡。 粗略估算的話,假設車輛車齡未滿 3 年,價格是全新時原價的 80%。 如果車齡至少 10 年,價格是 50%。 如果車齡至少 3 年但未滿 10 年,價格是原價的 70%。

實作CalculateResellPrice(originalPrice, age)函式,使用if、else if和else來套用這套邏輯(如果你想多練習,也有其他寫法)。 它接受原價和車齡作為引數,並回傳在經銷商的預估價格。

CalculateResellPrice(1000, 1)
// => 800

CalculateResellPrice(1000, 5)
// => 700

CalculateResellPrice(1000, 15)
// => 500

注意回傳值是float64。

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

準備好開始 購買車輛 了嗎?

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