Menu
CoddyTech

嵌套 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 只有在它所在的外部代码块运行时才会运行。每增加一层嵌套,就多缩进一个制表符。

challenge icon

挑战

简单

判断观众可以看哪些电影。前两行会为你读取变量 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)
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: GDScript 在线编译器