Luaの制御文

Luaプログラムに必要な条件分岐と繰り返し処理を学ぶ。

ifとelseによる条件分岐

ifelseifelse で分岐を選択する。

if 条件 then
  処理
elseif 別の条件 then
  処理
else
  処理
end
score = 70
if score >= 60 then
  print("合格")
else
  print("不合格")
end

等価比較には ==、不等価比較には ~= を使う。

Luaでは falsenil だけが偽である。C言語とは異なり、数値の 0 は真として扱われる。

関係演算子

演算子 意味
x < y xがyより小さい
x > y xがyより大きい
x <= y xがy以下
x >= y xがy以上
x == y xとyが等しい
x ~= y xとyが等しくない

繰り返し

条件が真の間だけ繰り返すには while を使う。

i = 1
while i <= 10 do
  print(i .. ": Hello world!")
  i = i + 1
end

範囲が決まっている場合は数値形式の for を使う。

for i = 1, 10 do
  print(i .. ": Hello world!")
end

3番目の値で増分を指定できる。

for i = 1, 10, 4 do
  print(i)
end

処理を最低1回実行する場合は repeat を使う。until の条件が真になると終了する。

i = 1
repeat
  print(i)
  i = i + 1
until i >= 5

ループを途中で抜けるには break を使う。

for i = 0, 10 do
  print(i)
  if i == 5 then break end
end

Luaには組み込みの switch 文と continue 文はない。

例: 九九表

for i = 1, 9 do
  for j = 1, 9 do
    io.write(string.format("%3d", i * j))
  end
  io.write("\n")
end

io.write() は自動改行しない。%3d は3文字分の表示領域を確保する。