Programming and Data Types | ![]() ![]() |
switch
switch
は、一変数値または式の値を基に、あるステートメントを実行します。この基本型は、
switchexpression (スカラ、または、文字列)
casevalue1
statements % Executes if expression is value1
casevalue2
statements % Executes if expression is value2
. . . otherwise
statements % 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 は、各case 1つしか処理を行ないません。これは、最初の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 | ![]() |