MATLAB知识点:while-end循环语句

 ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


节选自​第4章:MATLAB程序流程控制

除了for-end语句之外,MATLAB还提供了另一种强大的循环语句:while-end语句(简称while循环)。与for循环不同,while循环的特点在于它允许我们在不知道具体循环次数的情况下执行循环体,这种灵活性使得while循环在某些情境下非常有用,尤其是当我们需要满足某些某些条件时才执行循环操作。

while-end循环语句的语法如下:

在这里,表达式通常是一个判断条件,当这个条件为true时,循环会不断的迭代执行下去;一旦表达式的值变为false,循环就会被终止,程序将跳出循环体。

下面我们来看一个具体的例子:已知y\left( n \right) \,\,=\,\,1+\frac{1}{2}+\frac{1}{3}+\cdots +\frac{1}{n} ,当n最小取多少时, y的计算结果大于10?

y = 1;  n = 1;
while y <= 10
    n = n + 1;
    y = y + 1/n; 
end
disp(n)

y和n的初始值都是1,while后面的表达式是y<=10,即只要当前的y值小于等于10,循环就会继续执行。在循环体内,会更新n和y的值,直到满足y>10才会退出循环,此时的n就是最小的满足y>10的n.

再来看个例子:斐波那契数列的递推公式为:

 求数列中第一个大于99999的元素.

a(1) = 1;
a(2) = 1;
n = 2;
while a(n) <= 99999
    n = n + 1;
    a(n) = a(n-1) + a(n-2);
end
disp(a(end))

这段代码的计算思路如下:

  • 首先,我们初始化斐波那契数列的前两个元素a(1) 和 a(2),它们都被初始化为1。

  • 我们引入了一个索引变量 n,用于表示当前计算的斐波那契数列的第 n 项。初始时,n 被设置为2,因为我们已经知道了前两项。

  • 进入while 循环,条件是 a(n) 小于等于 99999。这表示代码将持续计算斐波那契数列,直到找到第一个大于 99999 的元素为止。

  • 在循环中,首先将索引变量n变成n+1,准备计算下一个斐波那契数。

  • 接着,我们使用递推关系 a(n) = a(n-1) + a(n-2) 计算下一个斐波那契数,并将其存储在向量a 中的索引变量n 的位置。

  • 循环会继续,不断计算下一个斐波那契数,直到条件 a(n) <= 99999 不再满足。

  • 一旦找到第一个大于 99999 的斐波那契数,循环结束。

  • 最后,输出向量a中的最后一个元素,它就是第一个大于99999的元素。

请大家思考:为什么while后面的条件表达式是n < 100,而不是n <= 100?

如果将条件改为n <= 100,则循环到n等于100时还会继续执行,此时n等于101,然后才会退出循环,这会导致y多计算一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值