exponenta event banner

Операторы управления контуром

С помощью операторов управления контуром можно многократно выполнять блок кода. Существует два типа петель:

  • for операторы циклически повторяют определенное число раз и отслеживают каждую итерацию с увеличивающейся переменной индекса.

    Например, предварительно назначьте 10-элементный вектор и рассчитайте пять значений:

    x = ones(1,10);
    for n = 2:6
        x(n) = 2 * x(n - 1);
    end
  • while до тех пор, пока условие остается верным.

    Например, найти первое целое число n для которых factorial(n) - 100-значный номер:

    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.

См. также

| | | |