制御命令

Last-modified: 2009-02-03 (火) 18:33:28

ここでは条件分岐やループについてに説明をしていきます。

条件分岐

IF

IF文は条件によって処理を分岐させる時に用います。
例えば変数a0の時に特定の動作をさせたい場合は以下のように記述します。

if a == 0 then
  処理内容
end

else

IFだけではひとつの分岐ですがこれをで2種類に分けたい場合、else文を使うことが出来ます。

if a == 0 then
  処理内容1
else
  処理内容2
end

elseif

IF文の後に続けて条件を指定する場合には、以下の2通りの方法があります。

  • IFを連続させる方法
    if a == 0 then
      処理内容
    end
    if a == 1 then
      処理内容
    end
  • elseifを使う方法
    if a == 0 then
      処理内容
    elseif a == 1 then
      処理内容
    end
    厳密には少し処理が違いますが、上の2つはほぼ同じ処理です。
    自分で分かりやすい方法を使用して構いません。

関係演算子

DSLuaの条件式には以下の関係演算子を使用できます。

表記方法条 件
==左右が等しい
~=左右が等しくない
>左が大きい
<右が大きい
>=左は右以上
<=右は左以上

論理演算子

また、以下の論理演算子を用いることで条件式を連結することが出来ます。

表記方法意 味
and左右両方が等しければ真
or左右のどちらかが正しければ真
not条件式の否定

ループ

繰り返し構文には種類が複数あります。

while

条件式がの間、ループを続ける

while 条件式 do
  処理内容
end

repeat

条件式がの間、ループを続ける

repeat
  処理内容
until 条件式

for

処理を1回繰り返すごとに変数に増分を加算し、条件式がの間ループを続ける。
増分を省略した場合には1ずつ加算されていく。

for 変数=初期値,条件式(,増分) do
  処理内容
end

break

ループ文の途中にbreakを実行すると、一番内側のループを抜けることが出来る。

コメント