switch文 | MATLAB基礎15

前回はif文について説明しました。今回はswitch文について説明します。

簡単なswitch文

switch文は複数の条件分岐を作るのに便利な構文です。if文でも複数の分岐は作成可能ですが、switch文のほうがよりシンプルに記述することができます。下記に簡単な例を記述します。

MATLAB
a = 5;
switch a
    case 0
        disp('zero')
    case 5
        disp('five')
end

実行結果は下記のとおりです。

簡単なswitch文

上記の例では2~7行目がswitch文になります。2行目のswitch aに関してはaの値について分岐させるという意味です。それに対して3,5行目のcase 0, case 5でaの値が0、aの値が5の場合の処理が記述されています。上の例では1行目でa = 5を代入しているので、6行目が実行されてコマンドウインドウに「five」という文字が表示されます。

一致するcaseがない場合

上記の例ではa = 5としていますが、例えばa = 2を代入して実行します。

MATLAB
a = 2;
switch a
    case 0
        disp('zero')
    case 5
        disp('five')
end

上記を実行してもコマンドウインドウにはなにも表示されません。一致する条件がない場合、switch文はなにも実行されません。

otherwise

if文にelseがあるように、switch文にはotherwiseという構文があります。上記のように一致する条件がない場合に実行する処理はotherwiseを用いて記述することが可能です。

MATLAB
a = 2;
switch a
    case 0
        disp('zero')
    case 5
        disp('five')
    otherwise
        disp('not zero or five')
end
switch文 otherwise

上記の例では、a = 2が代入されているので、case 0, case 5は満たされないため、8行目が実行されコマンドウインドウに「not zero or five」が表示されます。

複数の値と比較

caseに複数の条件を記述したい場合は下記のように記述します。

MATLAB
a = 2;
switch a
    case 0
        disp('zero')
    case {2, 5}
        disp('two or five')
    otherwise
        disp('not zero or five')
end
switch 複数の値と比較

5行目に記載したようにcase {2, 5}と記述すると、aの値が2か5の場合に6行目が実行できます。上記例ではa = 2のため、6行目が実行されて、コマンドウインドウに「two or five」が表示されます。

まとめ

今回はswitch文について紹介しました。switch文はif文に比べて複数条件が非常にシンプルに記述することができます。if文とswitch文は同じ機能を実現できるため、上手に使い分けて簡素な記述ができるようにしましょう。

次回は配列から条件を満たす値を抽出する方法について説明します。

関連記事

コメント

この記事へのコメントはありません。