Programming and Data Types | ![]() ![]() |
if, elseと elseif
if
は、論理式を計算し、式の値をベースに一つのグループ化したステートメントを実行します。最も簡単な型として、つぎの書式で表現することができます。
iflogical_expression
statements
end
論理式が1
(真)ならば、MATLABはifとendの間のすべてのステートメントを実行します。そして、end
ステートメントのつぎのラインを実行します。条件が0
(偽)ならば、MATLABはif
とend
の間のすべてのステートメントをスキップし、end
ステートメントのつぎのラインを実行します。
if rem(a,2) == 0 disp('a is even') b = a/2; end
if
ステートメントは、複数個、入れ子にすることができます。
論理式が、スカラでない値に対して計算しようとすると、引数のすべての要素は非ゼロでなければなりません。例えば、 X
を行列とします。そして、ステートメント
if X
statements
end
if all(X(:))
statements
end
else
とelseif
ステートメントは、if
について再度条件分岐を行ないます。
else
ステートメントは、論理条件をもっていません。それに関連したステートメントは、if
(または、可能ならelseif
条件)が偽(0
)の場合に実行します。 elseif
ステートメントは、論理条件をもっていません。それに関連したステートメントは前に設定されているif
(そして、elseif
条件)が0
(偽)ならば実行します。elseif
ステートメントは前に設定したif
が0
(偽)ならば計算する論理条件をもっています。これに関連したステートメントは論理条件が1
ならば実行します。また、if
ブロックの中で複数のelseif
を使うこともできます。if n < 0 % In が負の場合、エラーメッセージが表示されます。 disp('Input must be positive'); elseif rem(n,2) == 0 % n が正で偶数の場合、2で割ります。 A = n/2; else A = (n+1)/2; % n が正で奇数の場合、1を足して2で割ります。 end
ifステートメントと空配列
if A S1 else S0 end
![]() | フローコントロール | switch | ![]() |