ループのコントロール ステートメント
ループのコントロール ステートメントでは、コードのブロックを繰り返し実行できます。ループには次の 2 種類があります。
forステートメントでは特定回数のループを実行し、インデックス変数の値をインクリメントさせて各反復を追跡します。たとえば、10 要素のベクトルをあらかじめ割り当て、5 つの値を計算します。
x = ones(1,10); for n = 2:6 x(n) = 2 * x(n - 1); endwhileステートメントでは、条件が真である限りループが繰り返されます。たとえば、
factorial(n)が 100 桁の数値となる最初の整数nを見つけます。n = 1; nFactorial = 1; while nFactorial < 1e100 n = n + 1; nFactorial = nFactorial * n; end
各ループには end キーワードが必要です。
読みやすくするため、特に入れ子を使用する場合 (つまり、ループに別のループが含まれている場合) はループにインデントを適用することをお勧めします。
A = zeros(5,100);
for m = 1:5
for n = 1:100
A(m, n) = 1/(m + n - 1);
end
endプログラムで break ステートメントを使用してループを終了したり、continue ステートメントを使用してループの次の反復にスキップしたりできます。たとえば、関数 magic のヘルプに含まれる行数 (つまり、空行に至るまでのすべてのコメント行の数) をカウントします。
fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line)
break
elseif ~strncmp(line,'%',1)
continue
end
count = count + 1;
end
fprintf('%d lines in MAGIC help\n',count);
fclose(fid);ヒント
間違って無限ループ (それ自体では終了しないループ) を作成した場合は、Ctrl+C キーを押してループの実行を停止します。
参考
for | while | break | continue | end