【选择控制结构】
选择控制结构又称为分支结构,当程序执行到控制分支的语句时,首先判断条件,根据条件表达式的值选择相应的语句执行,并放弃另一部分语句的执行。
其既可以与顺序结构组合来构建简单的程序,也可以与顺序、循环结构组合构建复杂的程序。
【if 语句】
单分支结构(if 表达式)
语句结构:
1 | if 条件表达式 |
流程图:
实例:
1 | a=rand(1)*10; |
二分支结构(if-else 表达式)
语句结构:
1 | if 条件表达式 |
流程图:
实例:
1 | a=rand(1)*10; |
多分支结构(if-elseif-else 表达式)
语句结构:
1 | if 条件表达式1 |
流程图(以存在 3 个条件表达式的分支结构为例):
实例:
1 | a=rand(1)*10; |
【switch-case 语句】
使用
作用:根据表达式的值,使流程跳转到不同的语句
语句结构:
1 | switch 表达式 |
流程图(以 3-case 语句为例):
1 | a=ceil(rand(1)*10); |
与 if 语句的比较
if 语句 | switch 语句 |
---|---|
嵌套的 if 语句可读性弱 | 可读性强 |
比较字符串时,使用 strcmp() 函数进行比较 |
比较字符串时,自动调用strcmp() 进行比较 |
可检测连续值、离散值 | 只能检测离散值 |
【try-catch 语句】
作用:捕获异常并处理
语句结构:
1 | try |
流程图:
1 | try |
【说明】
共性:
- 三种语句结构最后必须以
end
结尾 - 依靠缩进来识别代码块
- 语句序列中可以是一条命令、多条命令(顺序结构)、控制结构、循环结构
- 建议在语句序列中的代码结尾加上分号
;
,负责会将该语句执行完毕后的值输出
if 语句:
- 在
if 语句
中嵌套 if 语句时:- 嵌套时,if、elseif、else 以缩进进行匹配
- 在
if-else
中嵌套一个if-else
,本质上与if-elseif-else
相同 - 在实际编程时,应适当控制嵌套层数,建议不超过 3 层
switch-case 语句:
- 要求 n 个标量不能相同
switch-case 语句
的表达式要求为标量或字符串- 当表达式为标量时,会执行
表达值==检测值 i
来比较 - 当表达式为字符串时,会执行
strcmp(表达式,检测值i)
来比较
- 当表达式为标量时,会执行
try-catch 语句:
try-catch
语句只提供两个可供选择的语句序列,在实际应用中,往往嵌套使用- 对于语句序列 1 来说,在其执行过程中,若某条语句出错,该语句之上的运行结果依然保留,只是该语句之后的语句不再执行
- 常用的错误或警告指令有:
lasterr
:显示上一次错误信息,并终止程序lastwarn
:显示上一次警告信息,并继续运行程序errortrap
:错误发生后,控制程序是否继续执行error('message')
:显示上一次出错信息 message,并终止程序lastwarn('message')
:显示上一次警告信息 message,并继续运行程序