| Programming and Data Types | ![]() |
if, elseと elseif
ifは、論理式を計算し、式の値をベースに一つのグループ化したステートメントを実行します。最も簡単な型として、つぎの書式で表現することができます。
iflogical_expressionstatementsend
論理式が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 | ![]() |