成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

了解 Lua 的 for 循環(huán)

開發(fā) 后端
了解 for 循環(huán)結構和你在控制它時擁有的選項,這樣你可以對如何在 Lua 中處理數(shù)據(jù)做出聰明的決定。

在編程中,迭代是一個重要的概念,因為代碼通常必須多次掃描一組數(shù)據(jù),以便它可以單獨處理每個項目。控制結構使你能夠根據(jù)通常在程序運行時動態(tài)建立的條件來指導程序的流程。不同的語言提供不同的控制,在 ??Lua??? 中,有 ??while??? 循環(huán)、??for??? 循環(huán)和 ??repeat until??? 循環(huán)。本文介紹 ??for??? 循環(huán)。我將在另一篇文章中介紹 ??while??? 和 ??repeat until?? 循環(huán)。

for 循環(huán)

??for?? 循環(huán)接受已知數(shù)量的項目并確保處理每個項目。“項目”可以是數(shù)字,它也可以是一個包含多個條目或任何 Lua 數(shù)據(jù)類型的表。語法和邏輯有點靈活,但語法允許這些參數(shù),每個參數(shù)本質(zhì)上描述了一個計數(shù)器:

  • 計數(shù)器的起始值
  • 停止值
  • 你希望計數(shù)器前進的增量

例如,假設你有三個項目并希望 Lua 處理每個項目。你的計數(shù)器可以從 3 開始一直持續(xù)到 1,增量為 -1。這呈現(xiàn)為 3、2、1 的計數(shù)。

mytable = { "zombie", "Halloween", "apocalypse" }for count = 3, 1, -1 do  print(count .. ": " .. mytable[count])end

運行代碼以確保所有三個項目都得到處理:

$ lua ./for.lua3: apocalypse2: Halloween1: zombie

這段代碼有效地“反向”處理了表,因為它是倒數(shù)。你可以正數(shù):

for count = 1, 3, 1 do  print(mytable[count])end

此示例從最低索引到最高索引處理表:

$ lua ./for.lua1: zombie2: Halloween3: apocalypse

增量

你也可以更改增量。例如,也許你想要一個沒有萬圣節(jié)盛況的僵尸啟示錄:

mytable = { "zombie", "Halloween", "apocalypse" }for count = 1, 3, 2 do  print(mytable[count])end

運行代碼:

$ lua ./for.luazombieapocalypse

該示例打印了 1 和 3,因為第一個計數(shù)是 1,然后遞增 2(總共 3)。

計數(shù)器

有時你不知道需要 Lua 遍歷數(shù)據(jù)的次數(shù)。在這種情況下,你可以將計數(shù)器設置為由其他進程填充的變量。

另外,??count??? 這個詞不是關鍵字。為了清楚起見,這正是我在示例代碼中使用的內(nèi)容。程序員通常使用更短的名稱,例如 ??i??? 或 ??c??。

var = os.time()if var%2 == 0 then  mytable = { var }else  mytable = { "foo", "bar", "baz" }endfor c = 1, #mytable, 1 do  print(mytable[c])end

此代碼創(chuàng)建一個變量,其中包含啟動時的時間戳。如果時間戳是偶數(shù)(除以 2 時模數(shù)為 0),則只將時間戳放入表中。如果時間戳是奇數(shù),它將三個字符串放入一個表中。

現(xiàn)在你無法確定你的 ??for??? 循環(huán)需要運行多少次。可能是一次或是三次,但沒有辦法確定。解決方案是將起始計數(shù)設置為 1,將最終計數(shù)設置為表的長度(??#mytable?? 是確定表長度的內(nèi)置快捷方式)。

可能需要多次運行腳本才能看到這兩個結果,但最終,你會得到如下結果:

$ lua ./dynamic.lua1665447960$ lua ./dynamic.luafoobarbaz

帶 pairs 和 ipairs 的 for 循環(huán)

如果你已經(jīng)閱讀了我關于 ??表迭代??? 的文章,那么你已經(jīng)熟悉了 Lua 中最常見的 ??for??? 循環(huán)之一。這個使用 ??pairs??? 或 ??ipairs?? 函數(shù)來迭代一個表:

mytable = { "zombie", "Halloween", "apocalypse" }for i,v in ipairs(mytable) do  print(i .. ": " v)end

??pairs??? 和 ??ipairs??? 函數(shù)“解包”表并將值轉(zhuǎn)儲到你提供的變量中。在此示例中,我將 ??i?? 用于 索引,將 ??v?? 用于 ,但變量名稱無關緊要。

$ lua ./for.lua1: zombie2: Halloween3: apocalypse

for 循環(huán)

??for??? 循環(huán)結構在編程中很常見,由于經(jīng)常使用表和 ??pairs??? 函數(shù),因此在 Lua 中非常常見。了解 ??for?? 循環(huán)結構和控制它時的選項意味著你可以就如何在 Lua 中處理數(shù)據(jù)做出明智的決定。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2017-01-20 08:30:19

JavaScriptfor循環(huán)

2009-12-23 11:05:28

Linux內(nèi)核

2011-08-24 14:22:13

LUA編輯器

2024-04-12 07:51:05

SpringBean初始化

2023-02-25 16:33:12

Luawhile

2024-08-22 08:17:55

C#工具循環(huán)

2011-08-25 15:10:49

LUAWindows環(huán)境配置

2021-03-05 18:04:15

JavaScript循環(huán)代碼

2024-01-30 13:47:45

2024-11-07 16:09:53

2011-08-29 16:23:29

Lua腳本

2023-09-26 07:49:11

AOP代理spring

2021-06-22 10:12:37

JavaScript 前端While 循環(huán)

2021-08-13 15:09:47

JavaScriptWhile循環(huán)

2024-08-16 15:44:53

JavaScriptWhile循環(huán)

2024-05-17 16:22:25

JavaScript

2019-12-18 15:11:42

數(shù)組集合數(shù)據(jù)

2011-08-23 18:00:00

lua 腳本測試C

2011-08-23 11:13:56

Lua

2021-03-24 13:17:41

編程循環(huán)語句Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看免费观看在线91 | 岛国一区| 国产一级视频在线观看 | 三级在线观看 | 国产美女在线看 | 久久中文字幕一区 | 伊人久久综合 | 国产精品永久久久久 | 男女羞羞视频网站 | 天天综合天天 | av黄色在线| 污片在线观看 | av激情影院| 久久久久国产一区二区三区四区 | 中文字幕99| 亚洲色图50p | 天天综合91 | 四虎成人精品永久免费av九九 | 免费在线视频一区二区 | 欧美精品一区二区三区在线播放 | 51ⅴ精品国产91久久久久久 | 亚洲欧美在线一区 | 亚洲精品一区二区三区在线 | 999精品网 | 成人a免费 | 免费国产视频 | 中文字幕日韩一区 | 在线国产小视频 | 欧美成人精品在线观看 | 久久青青| 国产激情一区二区三区 | 日韩精品一区二区三区中文字幕 | 国产无套一区二区三区久久 | 欧美一二三区 | 成人免费在线小视频 | 天天影视综合 | 亚洲精品日日夜夜 | 一级黄色网页 | 在线免费观看视频你懂的 | 91精品免费视频 | 国产91在线 | 中日 |