while 循环
本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 44 课,共 92 课。
for 循环会针对范围中的每个数字运行一次。只要条件为 true,while 循环就会继续运行:
var count := 3
while count > 0:
print(count)
count -= 1
print("Go!")3
2
1
Go!每次循环前都会检查条件。当 count 变成 0 时,count > 0 为 false,因此循环会停止,程序会继续执行循环后的内容。如果条件一开始就是 false,循环体就不会运行。
代码块必须改变条件所依赖的内容。这里,count -= 1 会让 count 更接近 0。如果没有这行代码,条件会一直为 true,循环就永远不会结束。
如果你事先不知道需要循环多少次,就使用 while。例如,下面的代码会找出大于 27 的最小 2 的幂:
var number := 27
var power_of_two := 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)power_of_two 在每次迭代时都会翻倍:2、4、8、16、32。当达到 32 时,power_of_two <= number 的结果为 false,因此程序会输出 32。
挑战
简单程序会将一个小数读入 number。
使用 while 循环,只要 number 大于或等于 3.5,就将它除以 2。然后打印结果,也就是第一个小于 3.5 的值。
例如,输入 15 时,数值依次为 15、7.5、3.75 和 1.875,因此程序会打印:
1.875如果输入已经小于 3.5,就原样打印。不要使用 for 循环。
亲手试试
extends Node
func _ready():
var number := float(OS.read_string_from_stdin())
# 只要 number 大于或等于 3.5,就将它减半,最后打印出来
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: GDScript 在线编译器