---
# System prepended metadata

title: 【Lua 筆記】延伸 for 迴圈 - part 6
tags: [Lua, 程式語言]

---

【Lua 筆記】延伸 for 迴圈 - part 6
===

目錄（Table of Contents）：

[TOC]

---

由於有款遊戲叫做 CSO（Counter-Strike Online），內建模式創世者模式（Studio）新增使用 Lua 及其遊戲的 API，所以突發奇想製作這個筆記。

這個筆記會在一開始先著重純粹的程式設計自學，在最後的章節才會與 CSO 遊戲 API 進行應用。

for in 迴圈
---

for 迴圈分為兩類：

- for do 迴圈
- for in do 迴圈

之前我們說的 for 都是 for do 迴圈。

今天來談 for in do 這個迴圈，它主要是用來迭代陣列或表的。可以分別用 `ipairs`、`pairs` 進行處理。

### 迭代陣列值
---

範例來源：[【30天Lua重拾筆記13】基礎2: 控制-for迴圈 - iT 邦幫忙::一起幫忙解決難題，拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10244489)

```lua=
array = {"one", "two", "three"}

for i, v in ipairs(array) do
  print(i, v)
end
```

輸出結果：

```
1   one
2   two
3   three
```

解釋一下：

- i 是陣列的索引值
- v 是陣列的元素值
- ipairs() 是 lua 內建的迭代器函數，專門用於陣列或是像是陣列的 table。

除了 ipairs() 之外，也有叫做 pairs() 的，它是主要用來迭代 table 這個資料型態，我們會在後續章節當中說明到。

參考資料
---

[【30天Lua重拾筆記13】基礎2: 控制-for迴圈 - iT 邦幫忙::一起幫忙解決難題，拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10244489)

[Lua for 循环 | 菜鸟教程](https://www.runoob.com/lua/lua-for-loop.html)