资源描述:
《matlab课件--第4讲条件语句和循环语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四讲条件语句和循环语句一、单条件语句格式1:if逻辑表达式程序语句组endif语句计算所跟的逻辑表达式的值,若值为真就做下面的程序语句组,若值为假就跳到end后继续做程序.条件语句例1:当从键盘输入自变量x的值,由分段函数给出y值.x=input(‘x=‘)ifx>0y=x*sin(x)endy=x^2+exp(x)程序如下%屏幕提示x=,由键盘输入值赋给x格式2:if逻辑表达式程序语句组1else程序语句组2endif语句计算所跟的逻辑表达式的值,若值为真就做下面的程序语句组1,然后就跳到end后继续做程序.否则,值为
2、假,就做else后的程序语句组2,然后再接着做end后的程序.例2:计算分段函数的值.程序如下:x=input('请输入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endx,y例3:当从键盘输入自变量x的值,由分段函数给出y的值.【例】输入三角形的三条边,求面积.A=input('请输入三角形的三条边:');ifA(1)+A(2)>A(3)&A(1)+A(3)>A(2)&A(2)+A(3)>A(1)p=(A(1)+A(2)+A(3))/2;s=
3、sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));disp(s);elsedisp('不能构成一个三角形。')end运行:请输入三角形的三条边:[456]9.9216二、多条件语句if条件1程序语句组1elseif条件2程序语句组2……elseif条件m语句组melse语句组nend语句用于实现多分支选择结构例4:当从键盘输入自变量x的值,由分段函数给出y的值.程序如下:x=input('请输入x的值:');ifx<0y=-1;elseifx==0y=0;elsey=1;endx,yswitch语句sw
4、itch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:switch表达式case表达式1语句组1case表达式2语句组2……case表达式m语句组motherwise语句组nend当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,…,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n.当任意一个分支的语句执行完后,直接执行switch语句的下一句.例5:某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用pr
5、ice来表示):price<200没有折扣200≤price<5003%折扣500≤price<10005%折扣1000≤price<25008%折扣2500≤price<500010%折扣5000≤price14%折扣输入所售商品的价格,求其实际销售价格.程序如下:price=input('请输入商品价格');switchfix(price/100)case{0,1}%价格小于200rate=0;case{2,3,4}%价格大于等于200但小于500rate=3/100;casenum2cell(5:9)%价格大于等于5
6、00但小于1000rate=5/100;casenum2cell(10:24)%价格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%价格大于等于2500但小于5000rate=10/100;otherwise%价格大于等于5000rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr
7、变量,并转去执行语句组2.例6:矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%显示出错原因循环语句1.for-end循环格式:for循环变量=初值:步长:终值循环体语句组end[注]步长为1时,可省略.例7:编程生成一个6阶矩阵,使其主对角线相邻上元素皆为1,与主对角线相邻元素皆为2,其余元素皆为0.程序如下:fori=1:6f
8、orj=1:6ifi==jA(i,j)=1;elseifabs(i-j)==1A(I,j)=2;elseA(I,j)=0;endendendA关于For循环的说明:1.For循环不能用For循环内重新赋值循环变量n来终止.forn=1:10x(n)=sin(n*pi/10);n=10;end»xx=Co