С циклом проверяют утверждения, можно неоднократно выполнять блок кода. Существует два типа циклов:
Операторы 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.
пропуск
| продолжение
| конец
| для
| в то время как