轨道
/
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,全部免费。