備忘録

プログラムやゲーム関連に関すること

【Lua】基本処理

Luaの基本的な処理をLuaコードにてメモ

-- 関係演算子 < > <= >= == ~=
-- 論理演算子 and or not
-- 単項演算子や三項演算子はない

-- if 条件分岐
num = 10
if num <= 50 then
	print("under 50")
elseif num <= 100 then
	print("under 100")
else
	print("over 100")
end

-- while ループ
i = 0
while i < 10 do
	print(i)
	i = i + 1
end

-- repeat ループ(C言語ならば、do-while文になる)
i = 0
repeat
	print(i)
	i = i + 1
until i >= 10

-- for ループ
for i = 0, 9 do
	print(i)
-- 5のときにbreakさせる
-- breakの後にendが必ず必要になる
-- luaにはcontinueはない
	if i == 5 then
		break
	end
end

-- for の第3パラメータは増加量を示す
-- 以下は2ずつ加算される
for i = 0, 9, 2 do
	print(i)
end

-- テーブル(配列・連想配列)
a = {12, 24, "test"}
b = {key1 = "test", key2 = 120}

-- 配列の添え字アクセスは1からとなる
print(a[1])

-- 配列の要素数を得る場合は#を使用する
print(#a)

-- 連想配列は以下の様なアクセスが可能
print(b["key1"])
print(b.key2)

-- 配列をループで処理する場合はipairsを使用する
for i, value in ipairs(a) do
	print(i, value)
end

-- 連想配列はpairsを使用する
for key, value in pairs(b) do
	print(key, value)
end

-- 引数有り関数
-- .. は文字列の連結
function show(txt)
	print("txt is " .. txt)
end

show("hoge")
show("piyo")

-- 戻り値有り関数
function getTxt(txt)
	return "txt is " .. txt
end

print(getTxt("hoge"))
print(getTxt("piyo"))

-- ローカル変数
function sum(a, b)
	local total = a + b
	return total
end

print(sum(1, 2))

-- 可変引数
function sum(...)
	local a = {...}
	local total = 0
	for i = 1, #a do
		total = total + a[i]
	end
	return total
end

print(sum(1, 2, 3, 4))

Luaの組み込み関数については以下

Lua5.2 英語: Lua 5.2 Reference Manual - contents
Lua5.2 日本語: Lua 5.2 リファレンスマニュアル