条件付きステートメント
条件付きステートメントでは、ランタイムに実行するコードのブロックを選択できます。最もシンプルな条件付きステートメントは、if ステートメントです。以下に例を示します。
% Generate a random number
a = randi(100, 1);
% If it is even, divide by 2
if rem(a, 2) == 0
disp('a is even')
b = a/2;
endif では、オプションのキーワード elseif または else を使用して、代替の選択肢を含めることができます。以下に例を示します。
a = randi(100, 1);
if a < 30
disp('small')
elseif a < 80
disp('medium')
else
disp('large')
endまたは、一連の既知の値を使用して等価性をテストする場合は、switch ステートメントを使用します。以下に例を示します。
[dayNum, dayString] = weekday(date, 'long', 'en_US');
switch dayString
case 'Monday'
disp('Start of the work week')
case 'Tuesday'
disp('Day 2')
case 'Wednesday'
disp('Day 3')
case 'Thursday'
disp('Day 4')
case 'Friday'
disp('Last day of the work week')
otherwise
disp('Weekend!')
endif と switch のいずれの場合も、MATLAB® では真である最初の条件まで対応するコードが実行されて、コード ブロックが終了されます。各条件付きステートメントでは、end キーワードが必要です。
一般的に、考えられる既知の離散値が多数ある場合は、if ステートメントよりも switch ステートメントの方が読みやすくなります。ただし、switch の値と case の値の間で非等価性をテストすることはできません。たとえば、switch で次のような条件を実装することはできません。
yourNumber = input('Enter a number: ');
if yourNumber < 0
disp('Negative')
elseif yourNumber > 0
disp('Positive')
else
disp('Zero')
end