ループのコントロール ステートメント
ループのコントロール ステートメントでは、コードのブロックを繰り返し実行できます。ループには次の 2 種類があります。
for
ステートメントでは特定回数のループを実行し、インデックス変数の値をインクリメントさせて各反復を追跡します。たとえば、10 要素のベクトルをあらかじめ割り当て、5 つの値を計算します。
x = ones(1,10); for n = 2:6 x(n) = 2 * x(n - 1); end
while
ステートメントでは、条件が真である限りループが繰り返されます。たとえば、
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