【Lua言語講座】13.制御構文(1) – if文 –

if文 Lua言語講座

こんにちは、ロブスタのハルです!
前回の講座では複数の引数を持った関数やinstance.newを使った演習を行いました。
今回から制御構文を解説していきます。
前回の講座を見ていない方はこちらからご覧ください。

制御構文について

制御構文せいぎょこうぶんとはプログラムの動作を管理するためのルールや命令のまとまりのようなものです。第1回でプログラムは基本的に上から下に動作すると説明しました。ですが、ある条件のときだけ処理しょりさせたり、ある条件の間だけ繰り返し処理させたいことがあります。そういったときに制御構文というものを使うのです。

if文について

ifイフ文は条件分岐じょうけんぶんきという役割を持っています。
もし条件が成り立つ(しんtrueトゥルー)なら処理を行うといった動作をします。

条件分岐について簡単な例を出してみます。
例えば、あなたが友達と遊ぶ約束をしているとしましょう。もし雨が降っているなら家で遊ぶ、そうでないなら公園で遊ぶみたいなことを考えたことがあると思います。
このようにある条件に応じて違う内容を行なうことを条件分岐と言います。
今回の例では雨が降っているかどうかが条件となりますね。

if文は次のように書きます。

if 条件式 then
   処理内容
end

※ifは日本語でもし~なら、thenゼンはそのときといった意味を持ちます。

ここで条件式じょうけんしきについてですが、こちらの記事にある演算子えんざんしを使うことで表現できます。詳しくは演習や例題で見ていきたいと思います。

else句について

if文単体たんたいでは条件が成り立つときにだけ処理が行われます。しかし、条件が成り立たなかったときに処理をさせたい場合もあるでしょう。そんなときにはelseエルスを追加します。

if 条件式 then
    処理1
else
    処理2
end

こうすることで条件式が成り立つときには処理1が、成り立たないときには処理2が実行されます。
※elseはそうでないならといった意味があります。

elseif句について

さらに、複数の条件式に応じて処理を切り替えたい場合にはelseifエルスイフを追加します。

if 条件式1 then
    処理1
elseif 条件式2 then
    処理2
elseif 条件式3 then
    処理3
else
    処理4
end

こうすると条件式が成り立つ処理だけが実行されます。

ただ、if-elseif-else文は上から順に条件式が成り立つかどうかを調べています。そのため、無駄むだにelseifをつなげてしまうと処理に時間がかかりゲームの動作が重くなってしまう可能性があります。

例題

if文

local x = 10

if x < 15 then
    print("xは15より小さいです。")
end

上の例ではx < 15つまり、xが15より小さいときにprint文が実行されます。

local x = 10
local y = 5

if x > 8 and y < 10 then
    print("OK!")
end

また、条件式には論理演算子を使うこともできます。この例ではx > 8 and y < 10つまり、xが8より大きい状態じょうたいとyが10より小さい状態が同時に成り立っているときにのみprint文が実行されます。

if-else文

local x = 10

if x < 10 then
    print("xは10より小さいです。")
else
    print("xは10以上です。")
end

この例ではxが10より小さい(x < 10)場合には”xは10より小さいです。”と表示され、それ以外では”xは10以上です。”と表示されます。x < 10以外ということはつまり、xが10以上(x >= 10)という条件式がelseの後にかくれていることになります。

if-elseif-else文

local x = 15  -- 15を代入しているのでNumber

if x > 0 then
    print("xは自然数です。")
elseif x == 0 then
    print("xは0です。")
else
    print("xは負の数です。")
end

上の例はxが自然数か0か負の数のどれであるかを判別はんべつするプログラムです。まず3行目で比較ひかくされ、x > 0なら自然数、そうでないなら5行目に移動し、x == 0なら0、そうでないなら7行目に移動し、負の数と判断はんだんされます。ここで、elseとなる条件はx > 0でもx == 0でもないことなので必然的ひつぜんてきにx < 0となります。(xは整数。整数は自然数と0と負の数の集合なので自然数でも0でもない負の数だけが残る)

まとめ

  • 制御構文とはプログラムの動作を管理する命令のこと
  • if文は条件式が成り立つときにだけ処理を実行する
  • else句はif文と組み合わせて、条件式が成り立たないときにも処理が実行できるようにする
  • elseif句はif文と組み合わせて、複数の条件式を使った条件分岐ができるようにする

お疲れ様でした。今回は制御構文の一つであるif文について解説しました。条件分岐自体は僕たちも普段からやっていることなので理解はできると思います。これから演習を通してif文が使えるようにしていきたいですね。

次回はif文を使った演習となります。

コメント

タイトルとURLをコピーしました