嵌套 If - Else
本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 29 课,共 92 课。
if 语句可以放在另一个 if 或 else 代码块中。这就是嵌套 if。先从普通的 if/else 开始:
var age := 15
var group := ""
if age >= 18:
group = "Adult"
else:
group = "Minor"现在在 else 代码块中嵌套一个 if/else,把未成年人分成两组:
var age := 15
var group := ""
if age >= 18:
group = "Adult"
else:
if age >= 13:
group = "Teenager"
else:
group = "Child"15 不大于或等于 18,所以外层的 else 会运行。在其中,15 >= 13 的结果是 true,因此 group 的值为 "Teenager"。
嵌套的 if 也可以放在 if 代码块中:
var age := 25
var can_rent_car := false
if age >= 18:
if age >= 21:
can_rent_car = true内部的 if 只有在它所在的外部代码块运行时才会运行。每增加一层嵌套,就多缩进一个制表符。
挑战
简单判断观众可以看哪些电影。前两行会为你读取变量 age 和 with_parent(不要更改它们)。
使用嵌套的 if/else 来设置 message:
- 如果
age大于或等于18:"You can watch any movie" - 否则,如果
with_parent是true:"You can watch PG-13 movies" - 否则:
"You can only watch G-rated movies"
with_parent 是一个 bool,所以直接检查它:if with_parent:。写出全部三种情况:测试会尝试有家长陪同和没有家长陪同的不同年龄。例如,年龄为 17 且有家长陪同时,输出为:
You can watch PG-13 movies亲手试试
extends Node
func _ready():
var age := int(OS.read_string_from_stdin()) # 不要改动这一行
var with_parent := OS.read_string_from_stdin() == "true" # 不要改动这一行
var message := ""
# 在下面编写嵌套的 if - else 代码
# 不要改动下面这一行
print(message)
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: GDScript 在线编译器