一、if语句
在 MATLAB 中, if 语句有 3 种格式。(1) 单分支 if 语句:if 条件语句组end当条件成立时,则执行语句组,执行完之后, 继续执行 if 语句的后继语句,若条件不成 立,则直接执行 if 语句的后继语句。(2) 双分支 if 语句:if 条件语句组 1else语句组 2end当条件成立时,执行语句组 1 ,否则执行语 句组 2 ,语句组 1 或语句组 2 执行后,再执行 if 语句的后继语句。(3) 多分支if 语句:if 条件 1语句组 1elseif 条件 2语句组 2……elseif 条件 m语句组 melse语句组 nend语句用于实现多分支选择结构。
例 3-4 计算分段函数的值。
程序如下:
x=input('请输入x的值:');
if x<=0
y= (x+sqrt(pi))/exp(2);
else
y=log(x+sqrt(1+x*x))/2;
end
Y
运行结果 :
例 3-5 输入一个字符,若为大写字母,则输出其对 应的小写字母;若为小写字母,则输出其对应的
大写字母;若为数字字符则输出其对应的数值, 若为其他字符则原样输出。
c=input('请输入一个字符','s');
if c>='A' & c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));
elseif c>='a'& c<='z'
disp(setstr(abs(c)- abs('a')+abs('A')));
elseif c>='0'& c<='9'
disp(abs(c)-abs('0'));
else
disp(c);
end
执行结果:
二、switch语句
switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:
switch 表达式
case 表达式1
语句组1
case 表达式2
语句组2
……
case 表达式m
语句组m
otherwise
语句组n
end
当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2 , …,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n。当任意一个分支的语句执行完后,直接执行switch语句的下一句。
例3-6 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示) :
price<200 没有折扣
200≤price<500 3%折扣
500≤price<1000 5%折扣
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。
程序如下:
price=input('请输入商品价格');
switch fix(price/100)
case {0,1} %价格小于200
rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000
rate=10/100;
otherwise %价格大于等于5000
rate=14/100;
end
price=price*(1-rate) %输出商品实际销售价格
运行结果 :
三、try语句
语句格式为:
try
语句组1
catch
语句组2
end
try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2 。
例3-7 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转
去求两矩阵的点乘。
程序如下:
A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12];
try
C=A*B;
catch
C=A.*B;
end
C
lasterr %显示出错原因
运行结果 :
结语
世上没有绝望的处境
只有对处境绝望的人
!!!