本节说明 MATLAB 中改写循环正常流程的 break 与 continue。break 立即终止其所在的 for 或 while 循环;continue 跳过本轮循环体中尚未执行的语句,进入下一轮迭代。Java、Python 等语言亦有同名或相近语义的关键字。
a = 10;
while a < 20
fprintf('value of a: %d\n', a);
a = a + 1;
if a > 15
break;
end
end输出为 10 至 15;当 a 增至 16 时,break 终止整个 while 循环。
break:退出当前循环
break 结束其所在的那一层循环,程序从循环后的语句继续执行。在搜索满足条件的第一个元素时较常用:
% 找到第一个能被 7 整除的数即停止
for n = 1:100
if mod(n, 7) == 0
fprintf('找到了:%d\n', n);
break;
end
endcontinue:跳过本轮剩余语句
continue 不退出循环,仅跳过本次迭代中 continue 之后的语句。下列示例打印 10 至 19,但跳过 15:
continue:满足条件时跳过本轮剩余语句,直接进入下一轮。
a = 9;
while a < 20
a = a + 1;
if a == 15
continue;
end
fprintf('value of a: %d\n', a);
end输出中不包含 15,其余取值照常打印。
对照
| 关键字 | 作用 |
|---|---|
break | 终止整个当前循环 |
continue | 结束本轮剩余语句,进入下一轮 |
嵌套时只作用一层
在嵌套循环中,break 与 continue 仅影响其直接所在的内层或外层循环,不会一次退出多层:
for i = 1:3
for j = 1:3
if j == 2
continue;
end
fprintf('%d,%d ', i, j);
end
fprintf('\n');
end常见误区
- 将
break写在循环体最外层且无条件的分支外:第一次迭代即退出,循环失去意义。 - 误以为
break可一次跳出多层嵌套:须借助标志变量或重构循环条件。 continue跳过了循环变量的更新语句:若更新写在continue之后且每轮未必执行到,条件可能恒为真。更新语句宜放在continue之前,或保证每轮都会执行到。
本节说明了 break 与 continue 的语义、嵌套循环中的作用范围及使用注意点。下一节介绍函数:函数文件结构、多输入输出与子函数。