【GMS】 if文を使った条件分岐を解説


うっほー!ゴッリラだよ!

最近寒くなってきたね! (((=ω=)))みんなはもう衣替えの準備はできた?
おいらは寒がりだから、毛皮の上からカイロを大量に貼りまくる予定だよ!(・ω・)

ゴッリラ
ってなんでやねん! やけどしちゃうよ!しかも全身の毛が抜け落ちちゃうよ!
スケット
(´・ω・`)

さて冗談はこの辺にして、今日のテーマである”条件分岐”について解説するよ!

GMSでゲームを作るうえで必要になるから、しっかり押さえておこう!

GameMaker Studioについてはこちらの記事をチェック!

初心者にお勧めのゲームエンジン GameMaker Studioとは?

2018年10月19日

1. 条件分岐とは?


プログラミング上で、ある条件が真か偽かによって分岐するかどうかを
決めることを”条件分岐”というんだ。

うん。ちょっとはっきりしないよね(;^ω^)
なので例を挙げて説明するよ!

例えば、合格点が80点以上の検定があったとして、
Aさんは90点Bさんは80点を取ったとしよう。

この場合、条件式は”点数が80点以上であるか”になり、
テストの点数に応じて結果が合格か不合格に分岐して処理するよ!

Aさんは合格で、Bさんは不合格になっちゃうね(´;ω;`)

GML(GMS)の独自言語を使ったプログラミングでも、変数の値や
状態によって、処理を変えないといけないこと事があるんだ!

そんな時に”if文”を使って条件分岐を行うよ!

2. if文とは?

if文とは条件分岐をプログラム上で実現するためにある制御構造の
一つだよ! 2つの値が等しいか、大小関係にあるかなどの
条件に応じた処理をしてほしい時に使うんだ!

GameMakerStudioで比較に使う演算子

演算子 使用例 使い方
== x==y xとyの値が等しい
!= x!=y xとyの値が等しくない
> x>y xはyよりも大きい
>= x>=y xがyよりも大きいか等しい
< x<y xはyよりも小さい
<= x<= xはyよりも小さいか等しい

3. if文の使い方

GMSでif文は次のように記述するよ!

if(条件式) { 実行したい処理 }

これだけだと良くわからないので、実際にいくつか例を
見ながら理解していこう!

これは変数test_scoreが80以上の時、
条件式がtrue(真)になり{}内の処理である”合格”という文字を表示する
プログラムが実行される例だよ!

確認のためにテストしてみると、ちゃんと”合格”と表示されたよ!

test_scoreが79以下の時は、条件式が満たされず
false(偽)になり{}内の処理は実行されないよ!

else文を使うことで条件式を満たさないfalseの時にも、
処理を実行するプログラムを記述することができるよ!


else文では、if文が条件を満たさないときに、{}内の
プログラムが実行されるんだ!

上の画像では”test_scoreが80以上である”という条件を
満たさないため、else内のプログラムが実行されて
“不合格”と表示されるよ!

また、if文では、else if文を使うことで、複数の条件にあった処理を
実行させることができるよ!

この例では、まず最初の条件式であるtest_score >=80が確認されるんだ。
今回変数の値は79だから{}内の処理は実行されず、
次のelse if文の条件式の確認に移るよ!

2つ目のelse if を使った条件式では、テストの点数が79以下で70以上
時に、”ギリギリ不合格“という文字を表示するプログラムを実行されるよ!

ポイント
2つ目の例のように、条件式はいくつでも追加することができるよ。
その場合は条件式の間に、繋がれた条件式が満たされたときのみtrueになる”&& ”
または、一方が条件式を満たしてればtrueになる”|| “を挿入する必要があるよ!

上2つの条件式をどちらも満たさない値の場合は、else文の処理が
実行されて”不合格“と表示されるよ!

こんな風にelse無しでif文を2つ続けることもできるけど、

さっきのelse if文とは違い、上のif文が条件式を満たしたとしても
そこで止まらず、続けて下のif文の条件式も確認してしまうんだ!

もしそこでも条件式を満たした場合、両方の処理が
実行されることになるから、注意が必要だよ!

また一番下のelse文は、2つめのif文が条件式を満たさなかった場合のみ
実行されるようになるよ!

まとめ

今回のif文は頻繁に使うことになると思うから、しっかりとおさえておこうね!
実際に自分でプログラムを書いて、結果を予想してから確認してみたりすると、
自分がどれだけ理解できているのか確認できると思うからおすすめだよ!

あと、GMLにはif文以外にも、switch文やuser_eventを使うことで、
条件分岐を実現させることができるんだ!

その事については、また別の記事で紹介するつもりだよ!

分からないことや質問があれば、いつでもtwitterやコメントで気軽に聞いてね!

それじゃあ!また次の記事で会えることを楽しみにしているよ!
じゃあね(・ω・)

ゴッリラ
最後まで読んでくれてありがとう!
1+

2 件のコメント

  • GMLでは特定のプログラミング言語(C言語やJAVAなど)をつかうのではなく、GML独自のプログラミング言語を使用するという認識でよいのでしょうか?

    2+
  • コメントを残す

    メールアドレスが公開されることはありません。

    ABOUTこの記事をかいた人

    このブログでは、初心者向けにGameMakerStudioを使ったゲームの作り方、プログラミングについての基礎知識を解説しているよ! "自分でゲームをつくってみたい!と思っている人は、是非読んでみてね!