一、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
运行结果 :
结语
信念决定行为
行为决定命运
!!!