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

GAS

こないだは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記事はこちらを参考にしている。

とてもわかりやすく初心者の方でもしっかりと学べるので、ぜひ手にとって欲しい。

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