TASK02 条件与循环
语法知识
for/end
for/end用于要求重复多次执行for和end之间的程序,其允许嵌套。书写格式如下:
for变量=起点:增量:终点 %程序的重复次数由起点和终点与增量决定
程序 %执行的程序
end %与for配对的语句
while/end
while/end和for/end不同,它不规定程序重复的次数,而是while后用一个条件来控制,若条件符合则重复while与end之间的程序,否则循环结束。
格式如下:
while 条件表达式
程序语句
end
if/end,if/elseif/···/else/end
if语句是判定一个逻辑表达式,由逻辑表达式的值来判定是否执行它下面的一组程序,如果逻辑表达式为真则执行,否则不执行(跳过中间一段程序)。书写格式如下:
if 逻辑表达式
程序语句
end
if/elseif/···/else/end则是进一步的if条件表达式,其中if与elseif是相互并列的。
书写格式如下:
if 逻辑表达式1
程序语句1
elseif 逻辑表达式2
程序语句2
elseif 逻辑表达式3
程序语句3
········
else
程序语句n
实战演练
for/end—使6阶魔方矩阵变成上三角矩阵
>> A=magic(6)
A =
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
>> for i=1:5
for j=i+1:6
A(j,:)=A(j,:)-A(i,:)/A(i,i)*A(j,i);
end
end,A
A =
35.0000 1.0000 6.0000 26.0000 19.0000 24.0000
0 31.9143 6.4857 18.7714 21.3714 22.9429
0 0 -4.9633 -5.8013 4.7377 -7.0904
0 0 0 -35.6494 11.8636 -47.5714
0 0 0 0 6.5508 13.1016
0 0 0 0 0 0.0000
while/end—用迭代法求方程的根
用迭代法求x3-3x2-5=0的根。
>> x0=3;r=1e-1;n=0;x1=0;
>> while r>1e-5
x0=x1;
x1=aa1(x0);
r=abs(x1-x0);
n=n+1;
end,x1,n
x1 =
3.4260
n =
11
function y=aa1(x)
y=3+5/x^2;
if/end,if/elseif/···/else/end—判断奇数偶数
输入一个整数如果它被2整除则显示其除以2的商并说明其为偶数,否则显示其为奇数。
function aa1
x=input('please input a integer: ');
if rem(x,2)==0
disp('it is even.')
b=x/2
else
disp('it is odd.')
end
总结思考
这些语法在大一C语言中接触过,并不难。这里要求我们更加熟练地操作。