| Programming and Data Types |
switch
switchは、一変数値または式の値を基に、あるステートメントを実行します。この基本型は、
switchexpression (スカラ、または、文字列)casevalue1statements % Executes if expression is value1casevalue2statements % Executes if expression is value2. . . otherwisestatements % Executes if expression does not% does not match any case end
switchという言葉に、計算される式を続けます。caseグループがあります。これらのグループは、case
のつぎに式に対して取り得る値が続きます。そして、これらはすべて単一ラインです。それに続く複数ラインは、式が与えられた値になったときに実行するステートメント群です。switchは、MATLABが、つぎのcaseステートメントまたはotherwiseステートメントに到達すると実行を終了します。最初に一致したcaseのみを実行します。otherwise グループ。これは、式の値がcaseのグループのどれとも一致しないときに実行するステートメントを後に続けます。endステートメントで実行を停止します。
endステートメントswitchは、入力した式と各々のcaseの値とを比較します。数値式に対して、caseステートメントは、(value==expression)なら真です。文字式に対して、strcmp(value,expression)なら真です。
つぎに示すコードは、switchステートメントの簡単な例です。これは、ある値に対して、変数input_num
をチェックします。input_num が-1, 0, 1のいずれかのとき、case
ステートメントは、テキストとしてスクリーンに値を表示します。input_num
が、これらの値のどれとも一致しないなら、otherwiseステートメントに行き、テキスト'other
value'を表示します。
switch input_num
case -1
disp('negative one');
case 0
disp('zero');
case 1
disp('positive one');
otherwise
disp('other value');
end
Cプログラマへの注意:
C言語のswitch構成と違って、MATLABのswitchは、各case1つしか処理を行ないません。これは、最初のcaseステートメントがTRUEならば、他のcaseステートメントは実行されません。それゆえ、breakステートメントを使う必要はありません。
|
switchは、caseの式をセル配列の中に入れることにより、単一のcaseステートメントに複数の条件を取り扱うことができます。
switch var
case 1
disp('1')
case {2,3,4}
disp('2 or 3 or 4')
case 5
disp('5')
otherwise
disp('something else')
end
| if, elseと elseif | while |