GASのきほん 〜Swich文による多岐分岐〜

こないだはIf文を使った様々な条件分岐を勉強したけど、今回は多岐分岐なのね。多岐分岐ってなんだろう?

そうだね、If文の場合は条件式の答えが「YES(True)」か「No(False)」かのどちらかしかないんだけど、それ以上の分岐をしたいときはElseifで条件を追加できるんだよね。
多岐分岐は要はIf〜Elseif文と同じ意味を持つんだよ。
かつ、よりシンプルな記述で実現できるんだ。
Swich文の書き方
Swich文は、VBAで言えば「Select case〜Else」文と同じである。
そして「Select」の部分がSwichに置き換わるだけだと思えば良い。
構文の例としては、例えば、下記の図のようにA君の成績がどうだったか?によってメッセージを出すというものがある。
この場合、結果はどうなるだろうか。

function myFunction() {
var rank='優';
switch(rank){
case '優':
console.log('おめでとう');
break;
case '良':
console.log('良かったね');
break;
case '可':
console.log('頑張ったね');
break;
case 'その他':
console.log('いいね');
break;}
}
図を見たら分かると思うが、ケースによって反応が違ってくる。
この場合、A君の成績は「var rank = '優’」で「優」と定義しているので、それに合ったケースをSwitch文で探していく・・ と考えればわかりやすい。
ちなみに、このコードの結果は以下のようになる。

Switch文で注意すべき点
Switch文はとても簡単に書けることが分かった。
でも、簡単だからこそ油断は禁物。いざというところで抜けがあると思うので、ここではコードを書く際の注意点をまとめていく。
break処理を忘れずに!
上記コードをよく見ると、case文の下の方に「break」が入っていることが分かる。
これはいわゆる「Stop」の役割を持つ。
では、もしbreak処理が入っていなかった場合はどうなるのだろうか。
下記、break文を削除したコードで動かしてみる。
function myFunction() {
var rank='優';
switch(rank){
case '優':
console.log('おめでとう');
case '良':
console.log('良かったね');
case '可':
console.log('頑張ったね');
case 'その他':
console.log('いいね');}
}
すると結果はどうなるだろうか。

このように、case文の処理結果が全て出てしまうのである。
これはどうしてこうなるのかは分からないが、要はbreak処理を入れないと次のCase処理に入ってしまう、ということだと思っておけば良いと思う。
セミコロンとコロンを忘れずに
もう一つ、つい忘れがちなのが「セミコロン(;)」と「コロン(:)」である。
以上のコードをよく見てみると、
break → コロン(:)
コードの終わり → セミコロン(;)
が書いてあることが分かる。
もしこれを加えないで実行させようとしてもエラーとなり実行できなくなるので気をつけよう。
次は繰り返しを勉強していく。
参考文献
毎度のことながら、このGAS記事はこちらを参考にしている。
とてもわかりやすく初心者の方でもしっかりと学べるので、ぜひ手にとって欲しい。
ディスカッション
コメント一覧
まだ、コメントがありません