Bootstrap

Matlab编程资源库(2)循环结构

一、for语句

for 语句的格式为:
for 循环变量 = 表达式 1: 表达式 2: 表达式 3
循环体语句
end
其中表达式 1 的值为循环变量的初值,表达式 2 的值为步长,表达式 3 的值为循环变量的 终值。步长为 1 时,表达式 2 可以省略。
3-8 一个三位整数各位数字的立方和等于该数本 身则称该数为水仙花数。输出全部水仙花数。
程序如下:
for m=100:999
m1=fix(m/100); %求m的百位数字
m2=rem(fix(m/10),10); %求m的十位数字
m3=rem(m,10); %求m的个位数字
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
disp(m)
end
end

运行结果 :

3-9 已知 ,当 n=100 时,求 y 的值。
程序如下:
y=0;
n=100;
for i=1:n
y=y+1/(2*i-1);
end
y

 运行结果 :

       在实际 MATLAB 编程中,采用循环语句会 降低其执行速度,所以前面的程序通常由
下面的程序来代替:
n=100;
i=1:2:2*n-1;
y=sum(1./i);
y
for 语句更一般的格式为:
for 循环变量 = 矩阵表达式
循环体语句
end
执行过程是 依次将矩阵的各列元素赋给循环变量然后执行循环体语句直至各列元素处理完毕

3-10 写出下列程序的执行结果。

s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
s=s+k;
end
disp(s');

运行结果 :

二、while语句

while 语句的一般格式为:
while ( 条件 )
循环体语句
end
其执行过程为:若条件成立,则执行 循环体语句,执行后再判断条件是否 成立,如果不成立则跳出循环。
3-11 从键盘输入若干个数,当输入 0 时结束输入,求这 些数的平均值和它们之和。
程序如下:
sum=0;
cnt=0;
val=input('Enter a number (end in 0):');
while (val~=0)
sum=sum+val;
cnt=cnt+1;
val=input('Enter a number (end in 0):');
end
if (cnt > 0)
sum
mean=sum/cnt
end

运行结果 :

三、break语句和continue语句

       与循环结构相关的语句还有 break 语句和 continue 语句,它们一般与 if 语句配合使用。
        break 语句用于终止循环的执行。 当在循环体内执行到该语句时,程序将跳出循环继续执行循环语句的下一语句
        continue 语句控制跳过循环体中的某些语句。 当在循环体内执行到该语句时程序将跳过循环体中所有剩下的语句继续下一次循环
3-12 [100 200] 之间第一个能被 21 整除 的整数。
程序如下:
for n=100:200
if rem(n,21)~=0
continue
end
break
end
n

运行结果 :

四、循环的嵌套

        如果一个循环结构的循环体又包括一个循环结构,就称为 循环的嵌套,或称为多重循环结构。
3-13 若一个数等于它的各个真因子之和,则称该数为完 数,如 6=1+2+3 ,所以 6 是完数。求 [1,500] 之间的全部完数。
for m=1:500
s=0;
for k=1:m/2
if rem(m,k)==0
s=s+k;
end
end
if m==s
disp(m);
end
end

运行结果 :

 结语 

信念决定行为

行为决定命运

!!!

;