程式設計的美妙之處之一是自動化。
在本章中,我們將學習 Loop的概念。
Lua 程式設計中的這個基本邏輯概念允許您根據條件重複執行代碼塊。
在 Lua 中,有三種主要類型的循環: while
、 for
和 repeat...until
。
每種類型的迴圈都有不同的用途。
在本指南中,我將逐步引導您瞭解每種類型的迴圈。
將提供範例來説明您瞭解如何有效地使用它們。
您可以使用 Lua Online Editor 來嘗試下面的循環範例:
Lua while 迴圈
這是一種常用的循環條件。 它的定義基本上是:
while
只要給定條件為 true,Loop 就會重複執行一段代碼。
它在執行循環的主體之前檢查條件。
它很有用,但您必須注意使用它。 試想一下,如果你創建一個沒有結尾的 while 條件,你會製造一個大麻煩。 我們通常稱其為 Infinite Loop (或無限迴圈)。 從字面上看,這意味著該程式將永遠重複自己,永遠不會結束。
while 迴圈的基本語法
while condition do
-- Code to execute while the condition is true
end
簡單的 while 循環示例
local count = 1
while count <= 5 do
print("Count: " .. count)
count = count + 1
end
在這個例子中,你可以在迴圈中看出,一旦 count
值從 1 增加到 5,它就會繼續列印值。
直觀地說,當超過5時 count
,迴圈停止。
現在,讓我向你展示如何創建 無限迴圈 。
local condition = true
local count = 1
while condition do
print("Count: " .. count)
count = count + 1
end
您可以判斷 while 條件將始終為 true。 由於狀態永遠不會改變。 因此,print 語句將永遠保持它。 如果您在 Lua 編譯器中運行此腳本,結果將是一個錯誤。
RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded
Lua for
迴圈
好了,接下來我們要討論 Lua for 迴圈。 與 While 循環類似,for 循環用於反覆運算一系列值。 當您提前知道反覆運算次數時,它特別有用。 Lua 中有不同類型的 for 迴圈,讓我們先看一下數位。
數字 for
迴圈
對於一個數位序列,數字迴圈會反覆運算自身,直到到達末尾。 讓我們看看基本語法:
for variable = start, stop, step do
-- Code to execute for each value in the range
end
基本上,我們稱之 variable
為 loop control 變數。
然後 是 start
變數的初始值。
接下來是 , stop
這是變數的最終值。
step
最後是增量(或遞減)值(可選,預設為1)。
讓我們通過一個例子來瞭解它是如何工作的。
Lua for 迴圈示例
for i = 1, 5 do
print("Value: " .. i)
end
您應該能夠解釋上述程式。 變數為 i,初始值為 1。 停車標誌是 5。 所以程式將列印出來:
Output:
Value: 1
Value: 2
Value: 3
Value: 4
Value: 5
在你自己的 Lua 編譯器中嘗試一下。
泛型 for 迴圈
使用泛型 for
迴圈,您可以反覆運算集合中的所有元素。
例如,您可以使用數位或表進行反覆運算。
如果您不熟悉這些數據類型,可以 在此處查看我們的相關教程。
讓我們看看泛型 for 循環的語法:
for key, value in pairs(collection) do
-- Code to execute for each key-value pair in the collection
end
Lua 泛型 for 迴圈示例
local fruits = {"apple", "banana", "cherry"}
for index, fruit in ipairs(fruits) do
print("Fruit " .. index .. ": " .. fruit)
end
你可以看出迴圈反覆運算 fruits 陣列( 想像一下它就像一個存儲盒)並列印每個 fruit 及其索引。 請注意,在 Lua 中,陣列的第一個索引是 1。 與陣列索引從 0 開始的許多其他編程語言不同,Lua 陣列(由表表示)是 1 索引的。 這意味著,當您訪問陣列的元素時,第一個元素位於位置 1。
Lua 重複…直到迴圈
與 while 迴圈非常相似,repeat…Until 迴圈在執行循環的主體后檢查條件。 注意 sequence ,這意味著 loop 將始終至少執行一次。 語法如下所示:
repeat
-- Code to execute
until condition
Lua repeat until 示例
local count = 15
repeat
print("Count: " .. count)
count = count + 1
until count > 30
您應該能夠模擬該程式。
迴圈列印 15 到 30 之間的值 count
。
當超過 30 時 count
,迴圈將停止。
我們可以將不同的循環組合在一起嗎?
答案肯定是肯定的。 Nest loops 彼此內部可以執行更複雜的logiciterations。 但請注意,您需要小心處理每個迴圈的 OPEN 和 CLOSE,否則會造成混亂。
Lua 嵌套循環範例
for i = 1, 3 do
print("Outer loop iteration: " .. i)
for j = 1, 2 do
print(" Inner loop iteration: " .. j)
end
end
我們可以將第一個 for 迴圈到外部迴圈。 它運行 3 次,對於外部迴圈的每次反覆運算,內部迴圈將運行 2 次。 這導致總共 6 次反覆運算。
結論
我們涵蓋了 Lua 循環的大部分基礎知識。
在本章中,您需要進行更多練習,因為我保證您將在即將到來的遊戲開發過程中大量使用Loop概念。
在 Lua 中,, while
, for
和 repeat...until
迴圈提供了處理各種反覆運算場景的靈活性。
通過理解和使用這些迴圈,您可以編寫更高效、更有效的 Lua 程式。