はじめに
Luaのfor文がわからなかったので僕なりにまとめてみました。
自分用につくってあるので人によってはわからないかもしれません
1. 数値for文 (決まった回数だけ繰り返す)
1から10を数える時など繰り返す回数が決まっているときなどに使える
sample.lua
for i = 1, 10 do
print(i .. "回目のループ")
end
1.1 数値for文(指定追加)
数値for文は、第3引数で増減する数値を指定することができる。
sample.lua
-- 1, 3, 5, 7, 9
for i = 1, 10, 2 do
print(i)
end
-- 10, 9, ... 1
for i = 10, 1, -1 do
print(i)
end
2. 汎用for文 (リストの中身を全部取り出す)
テーブルの中身を先頭から1つずつ取り出して処理したいときに使うことができる。主にpairs
とipairs
の2つの使い方がある
2.1 名前付きリストpairs
pairs
は、{ name = "ぬる", job = "学生", age = 19 }
のようにデータ名にキーが付いているテーブルに使える。取り出される順番は保証されないのが特徴
pairs.lua
local player = {
name = "ぬる",
job = "学生",
age = 19
}
for key, value in pairs(player) do
print(key .. "の中身は" .. value .. "です")
end
2.2 番号付きリストipairs
ipairs
は、{ "Intel", "Ryzen" }
のような番号が順番に並んだテーブル(配列)に使うことができる。
ipairs.lua
local cpu = { "Intel", "Ryzen" }
for i, manufacturer in ipairs(cpu) do
print("主なCPUメーカーは")
print(i .. manufacturer .. "です。")
end
ipairs
は便利ではあるが、テーブルキーが1から連続していないと以下のように途中で終わってしまうので注意しなければならない
ipairs_error.lua
local table = { [1] = "A", [2] = "B", [4] = "D" }
for i, v in ipairs(table) do
print (i, v)
end
-- 出力:
-- 1 A
-- 2 B