题目
编写程序,遍历 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 提前退出。