3.5 matlab用while语句实现循环结构

在这里插入图片描述

1、while语句
在这里插入图片描述(1)while语句多用于循环次数不确定的情况,而对于循环次数确定的情况,使用for语句更方便。
(2)针对不同情况可以选择不同的循环语句,但从功能上讲两种循环语句可以相互替代。

例1:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

msum = 0;
n = 0;
x=input('请输入一个数:\n');
while x~=0
    msum = msum + x;
    n = n+1;
    x = input('请输入一个数:\n');
end
if n>0
    msum
    mean = msum/n
end

%输出结果

请输入一个数:
12
请输入一个数:
35
请输入一个数:
22
请输入一个数:
10
请输入一个数:
0

msum =
    79
mean =
   19.7500

2、break语句和continue语句

(1)break语句用来跳出循环体,结束整个循环。
(2)continue语句用来结束本次循环,接着进行下一次是否执行循环的判断。

例2:求[100,200]之间第一个能被21整除的整数。

方法1  
for n=100:200
    if rem(n,21)~=0;
    continue
    end
    n
    break
end

%输出结果
n =
   105


方法2
a = [100:200];
for i=1:101
   if rem(a(i),21) == 0
     a(i)
     break
   end
end

%输出结果
ans =
   105

3、循环的嵌套
如果一个循环结构的循环体又包含一个循环结构,就称为循环的嵌套,或称为多重循环结构。

例3:用筛选法求某自然数范围内的全部素数。
分析:筛选法求素数的基本思想:要找出2m之间的全部素数,首先在2m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5) ,…,直到再划去不超过、m的倍数,剩下的就都是素数。

m = input('请输入一个自然数:\n');
p = 1:m;
p(1)=0;
for i=2:sqrt(m)
    for j=2*i:i:m
        p(j)=0;
    end
end
n = find(p~=0);
p(n)

%输出结果
请输入一个自然数:
15

ans =
     2     3     5     7    11    13

版权声明:本文为onlyfanlala原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。