使用 while 迴圈重複程式碼

*此內容是使用 AI(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。然後,單擊顏色輪圖標。一旦您獲得所需的顏色,按 OK 以自動將顏色值添加到代碼中。


    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 是我們在美國及其他國家地區的部分註冊與未註冊商標。