题目

编写程序,遍历 1 到 20 的整数:遇到能被 3 整除的数使用 <code>continue</code> 跳过不处理;累加其余整数;当累加总和首次超过 50 时,使用 <code>break</code> 立即终止循环,输出当前遍历到的数字与最终累加和。

输入格式:无需外部输入。

输出格式:输出提前跳出的步骤说明与最终数值。

数据范围与约定:循环流控制。

思路与算法

1. continue
立即结束当前这一轮迭代,跳过循环体中剩余的代码,直接进入下一轮的步长推进。

2. break
彻底结束并跳出整个当前层级的循环,控制流移交到循环体 `end` 之后的第一条语句。

3. 流程图推演
严格跟踪循环变量递进与累加器状态变化,确保退出边界值精确无误。

完整程序

% Octave / MATLAB 第55题:break 与 continue
total = 0;
stop_k = 0;

for k = 1:20
    % 如果是 3 的倍数,跳过当前轮次
    if mod(k, 3) == 0
        continue;
    end
    
    total = total + k;
    
    % 如果累加和超过 50,立即提前终止循环
    if total > 50
        stop_k = k;
        break;
    end
end

fprintf("跳过所有 3 的倍数后进行累加...\n");
fprintf("在 k = %d 时累加和达到 %d,触发 break 提前退出。\n", stop_k, total);

运行示例

输出:

跳过所有 3 的倍数后进行累加...
在 k = 13 时累加和达到 61,触发 break 提前退出。