うっほー!ゴッリラだよ!
やっとテスト期間が終わって、自由の身になれたんだ!!



さ、さて!今回は以前の条件分岐の記事で触れなかった、“switch”文について解説していくよ!

1. switch文とは?
switch文とは、GameMakerLanguageに用意された構文の一つで、”if文”のように
条件分岐を行うことができるんだ!
変数の値に応じて処理を実行したい時、”if文”で条件分岐を行う事ができる!という事については
以前の記事でも話したけど、
2つ以上の分岐をさせたい場合、”switch”文を使ったほうが
可読性の高いコードを書くことができるんだ!
例えば、プレイヤーの向きを文字列で保持する”dir”の値を確認したい時、
“if文”を使うとこんな感じのコードになるよ!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//if statement example
dir = "up";
if(dir == "left")
{
show_debug_message("プレイヤーは左を向いています");
}
else if(dir == "right")
{
show_debug_message("プレイヤーは右を向いています");
}
else if(dir == "up")
{
show_debug_message("プレイヤーは上を向いています");
}
else if(dir == "down")
{
show_debug_message("プレイヤーは下を向いています");
}
else
{
show_debug_message("プレイヤーは明日の方向を向いています");
} |
このコードがswitch文だとこうなるんだ!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//switch statement example
dir = "left";
switch(dir)
{
case "left":
show_debug_message("プレイヤーは左を向いています");
break;
case "right":
show_debug_message("プレイヤーは右を向いています");
break;
case "up":
show_debug_message("プレイヤーは上を向いています");
break;
case "down"
show_debug_message("プレイヤーは下を向いています");
break;
default:
show_debug_message("プレイヤーは明日の方向を向いています");
break;
} |
どう?if文と比べて見やすく感じない??(*’▽’)
こんな風に2つ以上の分岐処理をさせたい場合、”switch”文を使ったほうが
簡潔なプログラムを書くことができるんだ!
2. switch文の使い方
それじゃあ!さっそく”switch”文の使い方を見ていこう!
記述法:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
switch(式)
{
case 定数式1:
//処理内容
break;
case 定数式2:
//処理内容
break;
default:
//処理内容
} |
最初に式が実行された後に、その値と定数式の値が比べられるんだ!
双方の値が等しければ、そのcase内の処理が実行されるよ!
もし、どの定数式とも値が一致しなかった場合、default内の処理が実行されるんだ!
指定した値以外に何の処理も必要ない場合は、defaultを書かなくて良いよ!
最後に、breakが読み込まれるとswitch文の処理が完了するんだ!
つまりbreakを書き忘れると、その後の文全てが実行されるので書き忘れに注意してね!
使用例:
“switch文”は、おいらが10分でゲームを作るチャレンジに挑戦した時も使ったよ(*’▽’)
良かったら動画と一緒に確認してみてね!!
3. 練習問題

実際にプログラムを書いて、switch文について理解できたのか確認してみよう!!
*dayに1~7のランダムな値を持たせるには、irandom_range()関数を使おう!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
var day = irandom_range(1,7);
switch(day)
{
case 1:
show_debug_message("今日は月曜日だね!");
break;
case 2:
show_debug_message("今日は火曜日だね!");
break;
case 3:
show_debug_message("今日は水曜日だね!");
break;
case 4:
show_debug_message("今日は木曜日だね!");
break;
case 5:
show_debug_message("今日は金曜日だね!");
break;
case 6:
show_debug_message("今日は土曜日だね!");
break;
case 7:
show_debug_message("今日は日曜日だね!");
break;
default:
show_debug_message("ん?今日?ゴリラ日だよ!!");
} |
答えが完全に一致している必要はないよ!
まとめ
お疲れ様!これでswitch文についての説明はおしまいだよ!
何故かはわからないけど、switch文はおいらの一番好きな構文なんだ!
だから、Pythonにswitch文が存在しないって知った時は凄くショックだったよ(´・ω・`)
人によっては”if文”のほうが見やすいや!って言う人もいると思うんだ!
今回はあくまで、こういう方法もあるよ!という事を伝えたかっただけだから、
if文とswitch文を無理に使い分ける必要はないよ!
この記事を通して、少しでも皆が新しいことを学ぶことができたら嬉しいな(*’▽’)
質問があればいつでも@hellomanaki、コメントで待ってるよ!
また次の記事で会えることを楽しみにしているよ!
“for文のように”のところforではなくifじゃなんですか?
ありがとうございます!訂正しておきました!