Menu
CoddyTech

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。

challenge icon

挑战

简单

程序会将一个小数读入 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,就将它减半,最后打印出来
quiz icon自我测试

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

基础知识中的所有课

自己练习: GDScript 在线编译器