选择结构根据不同的条件来执行不同的语句。在进行选择结构设计之前,应先确定要判断的条件,以及不同判断结果下所执行的操作。
1.单分支if语句
语句结构如下:
当条件成立时,则执行if与end之间的语句组,并继续执行end以后的程序;若条件不成立,则跳过if与end之间的程序语句,直接执行end以后的语句。
2.双分支if语句
语句结构如下:
当条件成立时,执行语句组1,否则执行语句组2。执行完语句组1或语句组2后,再执行end以后的语句。
【例3.16】 计算分段函数的值。
(1)利用单分支if语句设计程序如下:
(2)利用双分支if语句设计程序如下:
3.多分支if语句
语句结构如下:
当条件1成立时,执行语句组1,然后跳出if语句;若条件1不成立,则考虑条件2,当条件2成立时,执行语句组2,然后跳出if语句,依此类推。如果前面的条件不满足,则执行语句体n+1。根据程序设计的需求可以设计多个elseif语句,也可以省略else语句。
【例3.17】 计算函数的值。
设计程序如下:
【例3.18】 在MATLAB中,使用多分支if语句编写求解一元二次方程ax2+bx+c=0的程序代码。
在编辑器中编写如下代码,完成方程的求解,并以solve_equation.m为名存入相应的子目录。
在MATLAB命令行窗口输入如下命令:
运行结果如下:
4.switch语句(www.xing528.com)
switch语句又称开关语句,它可以根据表达式的取值不同,分别执行不同的语句,其语句结构如下:
【注】switch后面的表达式的值必须是一个标量或者字符串。
【例3.19】 使用switch-case结构完成卷面成绩score的转换。
(1)score≥90分,优; (2)90>score≥80分,良;
(3)80>score≥70分,中; (4)70>score≥60分,及格;
(5)60>score≥50分,不及格。
在程序编辑窗口中编写以下语句,并以score_change.m为名存入相应的子目录。
在命令行窗口输入如下命令:
该程序的运行结果如下:
需要注意的是,MATLAB中的switch语句和C语言中的switch语句结构不同。在C语言中,即便前面已有条件满足,每个case也都要进行比较,因此,通常在case的语句体后面增加一个break语句,使程序只执行第一个满足条件的case。而在MATLAB中无须增加break语句,程序便只完成第一个满足条件的case。
5.try语句
try语句又称出错处理语句,主要用来抓取程序执行中出现的错误,以便决定如何对错误进行响应。
其语句结构如下:
try语句先试探性地执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2;如果无误,程序就直接跳到end语句。在语句组2中,通常利用lasterr和lasterror函数获取错误信息,并采取相应的措施。该语句可以提高程序的容错能力,增加编程的灵活性。
【例3.20】 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。
在程序编辑窗中编写以下语句,并以test_error.m为名存入相应的子目录。
在命令行窗口输入如下命令:
该程序的运行结果如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。