条件付きステートメント
条件付きステートメントでは、ランタイムに実行するコードのブロックを選択できます。最もシンプルな条件付きステートメントは、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; end
if
では、オプションのキーワード 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!') end
if
と 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