MATLAB - While 循环
MATLAB - while 循环
Section titled “MATLAB - while 循环”一个 while 循环是 MATLAB 中一种基本的控制流结构,只要指定条件为真,它就会重复执行一段代码块。它非常适合预先不知道迭代次数的情况。
MATLAB 中 while 循环的基本语法是:
while <condition> % Code block to be executed <statements>end该循环的运作方式如下:
- MATLAB 首先评估
<condition>(条件)。 - 如果条件为
true(真),则执行循环体内的<statements>(语句)。 - 执行后,控制流返回步骤 1。
- 如果条件为
false(假),循环终止,程序继续执行end关键字之后的语句。
如果条件的结果是一个包含所有非零元素(逻辑值或实数)的非空数组,则该条件被认为是 true(真)。否则,条件为 false(假)。
示例:一个简单的计数器
Section titled “示例:一个简单的计数器”让我们创建一个脚本文件来演示一个从 10 计数到 19 的基本 while 循环。
% 初始化计数器变量a = 10;
% 只要 'a' 小于 20,while 循环就继续执行while (a < 20) % 显示 'a' 的当前值 fprintf('Value of a: %d\n', a);
% 重要提示:更新计数器以避免无限循环 a = a + 1;end
fprintf('Loop finished. Final value of a is %d\n', a);运行此脚本将产生以下输出:
Value of a: 10Value of a: 11Value of a: 12Value of a: 13Value of a: 14Value of a: 15Value of a: 16Value of a: 17Value of a: 18Value of a: 19Loop finished. Final value of a is 20控制循环执行
Section titled “控制循环执行”你可以使用 break 和 continue 语句来控制 while 循环的流程。
break:立即终止整个while循环。continue:跳过当前迭代的剩余部分,并继续进行下一次循环条件的评估。
带有 break 和 continue 的示例
Section titled “带有 break 和 continue 的示例”% 查找大于 50 的第一个 7 的倍数num = 50;while true % 一个故意设计的无限循环,由 break 控制 num = num + 1;
% 如果数字不是 7 的倍数,则跳过 if mod(num, 7) ~= 0 continue; end
% 如果执行到这里,说明找到了 7 的倍数 fprintf('First multiple of 7 after 50 is: %d\n', num); break; % 退出循环end常见陷阱与最佳实践
Section titled “常见陷阱与最佳实践”- 无限循环:最常见的错误是忘记更新控制循环条件的变量。这会导致条件永远保持为
true(真)。请务必确保你的循环逻辑允许条件最终变为false(假)。 for与while:当你已知确切的迭代次数时(例如,遍历向量的元素),使用for循环。当你需要迭代直到满足特定条件时(例如,从文件读取直到文件末尾,或运行收敛算法),使用while循环。
matlab_loops.htm