首页 > 编程笔记 > MATLAB笔记 阅读:13

MATLAB while循环语句的用法(附带实例)

MATLAB 中的 while 循环在一个逻辑条件的控制下重复执行一组语句的次数不定,匹配的 end 结束语句。

while 循环结构的具体语法形式如下:
while expression
    command
end
while 和 end 之间的命令组称为循环体。MATLAB 在运行 while 循环之前,首先检测 expression 的值,若其逻辑值为真,则执行命令组;命令组第一次被执行完毕后,继续检测 expression 的逻辑值,若其逻辑值仍为真,则循环执行命令组,直到表达式 expression 的逻辑值为假,结束 while 循环。

一般情况下,表达式的值都是标量值,但是在 MATLAB 中,同样可以运行表达式为数组的情况。只有当表达式为数组且数组所有元素的逻辑值均为真时,while 循环才继续执行命令组。

如果 while 指令后的表达式为空数组,那么 MATLAB 默认表达式的值为假,直接结束循环。

while 循环和 for 循环的区别在于,while 循环结构的循环体被执行的次数是不确定的,而 for 循环中的循环体被执行的次数是确定的。

【实例 1】求 Fibonacci 数列(斐波那切数列)中第一个大于 9999 的元素。在编辑器窗口中编写 M 文件并命名为ex.m。
clear
a(1) = 1;
a(2) = 1;
i = 2;
while a(i) < 10000  % 当元素小于或等于 9999 时,求下一项
    a(i+1) = a(i) + a(i-1);
    i = i + 1;
end
[i a(i)]
运行 M 文件,输出结果如下:
ans =
    21    10946
Fibonacci 数列中的第 21 项 10946 是第一个大于 9999 的元素。

【实例 2】利用 while 循环求 1+2+...+100 的值。在编辑器窗口中编写 M 文件并命名为ex.m。
clear
i = 1;
sum = 0;
while i < 101
    sum = sum + i;
    i = i + 1;
end
sum
运行后可得到如下结果:
sum =
    5050
综上,在无法确定循环次数,或者根本不需要知道循环次数,而只需确定满足什么条件循环不停止的情况下,使用 while 循环比较合理。

相关文章