■ if
SYNTAX
if 式 then 文 else 文 end
if 式 then 文 elseif 式 then 文 else 文 end
WARNING
型が異なるもの同士の比較はすべて false;
[ "false" | "nil" ] 以外はすべて 真
-- 以下すべて真
if ( 0 ) then ... end;
if ( "" ) then ... end;
if ( {} ) then ... end;
0 = "0"; // RET: false
a, b = 128, 18;
if a == b then
print("equal");
else
print("not equal");
end
■ for
SYNTAX
for Name `=´ exp `,´ exp [`,´ exp] do block end
for 変数 = 初期値, 終了値[, 増加量] do 文 end
for 変数 = 初期値, 終了値, 増加量 do 〜 end
0 から 10 まで
for i=0,10 do
print(i);
end
2 個飛ばしで
for i=0,10,2 do
print(i);
end
配列(テーブル)をイテレートする
a = { 3, 4, 5 }
for i=1,#a do
print( a[i] );
end
WARNING
[ i ]は ローカル変数のため, for 文が終了した瞬間に終了。
break については block 末尾のみできる
for i = 0, 10 do
print("test")
do
break;
end
print("test")
end
■ repeat
SYNTAX
repeat 文 until 条件式
local cnt = 0;
repeat
print( cnt );
cnt = cnt + 1;
until cnt > 3
■ while
SYNTAX
while 評価式 do 文 end
WARNING
break; は block 末尾にある必要がある.
■ foreach
SYNTAX
for key,value in pairs(連想配列) do 文 end
DESC
配列扱いのテーブルを巡回する場合は、ipairs() 関数を利用する。
local a = { 1, 2, 5, 8 };
for i, v in pairs( a ) do
print(tostring(i) .. " = " .. tostring(v) )
end
WARNING
巡回する index の最大値は最大のインデックスまで。
index は連続している必要はない。