range 函数
本课属于 Coddy GDScript 学习旅程的“基础知识”单元。第 48 课,共 92 课。
range() 可以接受一个、两个或三个数字:
range(end):从0开始,到end之前range(start, end):从start开始,到end之前range(start, end, step):从start开始,到end之前,每次移动step
这三种情况下都不包含 end。step 表示要加多少才能得到下一个数字。下面的代码会打印出小于 10 的奇数:
for i in range(1, 10, 2):
print(i)1
3
5
7
9负数步长会向后计数。因此,起始值必须大于结束值。下面的代码会从 10 倒数到 1:
for i in range(10, 0, -1):
print(i)结束值仍然不包含在内,因此循环会在 1 处停止。使用 range(20, 9, -2) 时,数字依次是 20、18、16、14、12 和 10:因为 10 仍然大于 9,所以它会包含在内。
如果起始值已经超过结束值,例如 range(1, 5, -1),那么范围为空,循环不会运行。
GDScript 还允许你在 in 后面写一个数字。for i in 3: 的效果与 for i in range(3): 相同,i 的取值从 0 到 2。
挑战
简单程序会读取三个整数:start、end 和 step。
使用带有 range(start, end, step) 的 for 循环,逐行打印该范围内的每个数字。
输入 1、10 和 2 时,输出为:
1
3
5
7
9步长可以是负数:对于 10、0 和 -3,打印 10、7、4 和 1。
亲手试试
extends Node
func _ready():
var start := int(OS.read_string_from_stdin())
var end := int(OS.read_string_from_stdin())
var step := int(OS.read_string_from_stdin())
# 在这里写你的 for 循环
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: GDScript 在线编译器