Main Content

循环控制语句

通过循环控制语句,您可以重复执行代码块。循环有两种类型:

  • for 语句:循环特定次数,并通过递增的索引变量跟踪每次迭代。

    例如,预分配一个 10 元素向量并计算五个值:

    x = ones(1,10);
    for n = 2:6
        x(n) = 2 * x(n - 1);
    end
  • while 语句:只要条件仍然为 true 就进行循环。

    例如,计算使 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 停止执行循环。

另请参阅

| | | |

外部网站