Main Content

条件付きステートメント

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

ifswitch のいずれの場合も、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

参考

| | |

外部の Web サイト