使用while循环重复代码

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

计算机科学或游戏开发中有许多事物是会重复的。例如,一个应用程序可能每几秒更新一次动态内容,或者一个游戏可能会在玩家每天登录时奖励他们一个奖品。为了实现这种行为,程序员通常使用循环

在计算机科学中,循环是一种重复一组指令的编码模式,通常直到满足特定条件为止。为了练习这个概念,你将编写一个无限改变颜色的部件。后面的课程将展示如何停止循环。

设置部件和脚本

使用任何Roblox项目进行此练习。完成后,这个部件可以用作装饰环境的一种方式。

  1. 创建一个具有描述性名称的新部件。此课程使用LoopingPart

  2. ServerScriptService中,添加一个名为LoopingScript的新脚本。

  3. 在脚本中,删除Hello World并写一个注释说明此脚本的目的。


    -- 每几秒改变LoopingPart的颜色

使用变量存储部件

变量除了可以容纳字符串外,还可以保存对对象的引用。例如,当脚本知道一个部件的引用时,脚本可以改变它。

与其一遍又一遍地键入workspace.NameOfYourPart,不如将整行存储在一个局部变量中。局部变量是通过输入local及变量名称来创建的。

例如:local nameOfVariable

  1. 在注释下方,创建一个局部变量,输入local loopingPart


    -- 每几秒改变LoopingPart的颜色
    local loopingPart
  2. 在同一行将变量设置为循环部件,键入= workspace.LoopingPart。请记住,=操作符将变量的值设置为右侧的内容。


    -- 每几秒改变LoopingPart的颜色
    local loopingPart = workspace.LoopingPart

while循环

在为颜色改变的部件创建while循环之前,解释一下它的语法是很有必要的。while循环有三个组成部分:

  • while关键字。
  • 条件,始终在关键字之后。
  • 指令,在doend关键字之间。

在循环中,条件可以是各种逻辑语句。一些例子可能是两个数字是否相等。如果条件为真,循环将运行。

请注意下面的示例,条件是真,这意味着这个循环将永远运行。在后面的课程中,你将编写特定的条件来停止循环。


while true do
print("这个循环正在运行")
end

编写while循环

接下来,你将为颜色改变的部件设置while循环。

  1. 在下一行输入while true do。然后,按Enter自动补全并添加单词end


    -- 每几秒改变loopingPart的颜色
    local loopingPart = workspace.LoopingPart
    -- 循环代码
    while true do
    end

在循环中添加代码

创建while循环后,可以添加指令以随着时间的推移改变部件的颜色。在循环内部,为每种颜色添加一行代码。每种颜色将使用RGB值,这是一种在计算机科学中以数字方式存储颜色的方法。

  1. while true doend之间,设置部件的Color属性为Color3.fromRGB()


    local loopingPart = workspace.LoopingPart
    while true do
    loopingPart.Color = Color3.fromRGB()
    end
  2. 可以使用Studio中的颜色选择器设置颜色。为此,在fromRGB旁边的()内左键单击。然后,单击颜色轮图标。一旦选定所需颜色,按确定自动将颜色值添加到代码中。


    local loopingPart = workspace.LoopingPart
    while true do
    loopingPart.Color = Color3.fromRGB(82, 227, 255)
    end

让脚本等待

如果你现在添加第二行改变颜色的代码,砖块的颜色变化将如此之快,以至于你可能根本无法看到第一个颜色。为了让脚本在运行下一行代码之前等待,使用task.wait()函数。

  1. 在改变砖块颜色的下一行,键入task.wait(3)。放在()中的任何数字是脚本将等待的秒数。


    local loopingPart = workspace.LoopingPart
    while true do
    loopingPart.Color = Color3.fromRGB(82, 227, 255)
    task.wait(3)
    end
  2. 在等待函数下,重复添加新颜色的相同过程。最后再加一个等待函数。


    while true do
    loopingPart.Color = Color3.fromRGB(82, 227, 255)
    task.wait(3)
    loopingPart.Color = Color3.fromRGB(177, 52, 255)
    task.wait(3)
    end
  3. 测试代码,看看颜色是否会变化。

故障排除注意事项
此时,如果颜色变化的部件未按预期工作,请尝试以下其中一种。

问题:颜色被跳过

  • 确保在每次颜色变化之间都有一个等待函数,尤其是在最后一行。
  • 检查所有颜色变化和等待代码是否位于while true doend之间。

问题:部件仍为灰色或未按预期变化颜色

  • 确保所有RGB值的数字在0到255之间,可以是整数或小数,且用逗号分隔。
  • 等待函数的()中的数字应大于1。等待时间过短,可能导致你看不到该颜色。

完整的颜色循环部件脚本


-- 创建一个变量来存储部件
local loopingPart = workspace.LoopingPart
-- 循环代码
while true do
-- 改变loopingPart的颜色
loopingPart.Color = Color3.fromRGB(82, 227, 255)
-- 等待3秒后执行下一条指令
task.wait(3)
loopingPart.Color = Color3.fromRGB(177, 52, 255)
task.wait(3)
end

总结

循环是大多数计算机语言中的常见元素。它们用于重复指令,有时直至满足特定条件。在本文中,使用while循环无休止地重复指令。要创建一个无限循环的while循环,请使用下面的语法,并确保在doend关键字之间包含指令。


while true do
-- 指令
end
©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。