首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
3.5 选择结构
选择结构有单分支选择结构、双分支选择结构和多分支选择结构。C语言提供相应的if语句和switCh语句分别用来描述这些选择结构。
1.单分支选择语句
单分支选择语句有以下形式:
if(表达式)
语句
这种形式的语句执行过程是:
(1)计算表达式的值;
(2)测试表达式的值。若表达式的值非0,则执行它的成分语句,并结束单分支选择的执行;若表达式的值为0,则立即结束单分支选择的执行。
2.双分支选择语句
汉分支选择语句有以下形式:
if(表达式)
语句1
else
语句2
双分支选择语句根据给定的选择条件表达式值为非0或为0两种情况,从两个供选择的成分语句中自动选取一个成分语句执行。双分支选择语句的执行过程是:
(1)计算表达式的值;
(2)测试表达式的值并选择执行语句。若表达式的值非0,则执行语句1,并结束双分支选择语句;否则执行语句2,并结束双分支选择语句。
注意;无论条件表达式的值为何值,只能执行语句1或语句2中的一个。当双分文选择语句中的else之后的语句2为空语句时,就变成单分支选择语句。
单分文选择语句和双分支选择语句统称且语句。在if语句中的语句、语句1和语句2可以是任何语句。当它们中的某一个需用语句序列描述时,必须将这语句序列写成复合语句。当它们中的某一个又是if语句时,就呈现嵌套的if语句形式。这时应注意else与if的对应关系。C语言约定else总是与它前面最接近的if对应。
为正确书写if语句,特别说明以下几点:
(1)若if语句中的语句、语句1、语句2是一个简单语句,则这些简单语句之后会有一个分号,这是C语言对这些简单语句的要求。
(2)若if语句中的语句、语句l、语句2要用语句序列(即为顺序结构)来实现,则必须将它们改写成复合语句,即逻辑上把它们变成一个语句。
(3) 在if语句中,每个else总要与它前面的if对应,不可能出现没有对应if的else。
多分支选择语句
多分支选择结构通常有 n(>2)个不同情况和 n+1个供选择的分支。多分支选择结构也可用前叙述的嵌套if语句来描述,但因if语句嵌套深度太多不便于程序编写,也不便于理解,为此C语言专门提供了一种实现多分支选择结构的语句,这就是switCh语句。它的一般形式是:
switeh(表达式){
case常量表达式 1:语句序列 1
case常量表达式 1:语句序列 2
case常量表达式 n:语句序列 n
defalt:语句序列 n+1
}
对switeh语句需说明以下几点:
(1)switch后面括号内的表达式只限于是整型表达式或字符型表达式或枚举型表达式。
(2)case后的常量表达式称为情况前缀,要求所有常量表达式的值互不相同,并与switch后面括号内的表达式值的类型相一致。
(3)语句序列由任意条合法的C语句构成,也可以没有语句。
(4)情况前缀default可以缺省,但至多出现一次,习惯总是将它写在全部情况前缀之后,如有必要也可写在某case之前。
switch语句的执行过程解释如下:
先计算表达式的值,以该值依次与各case之后的常量表达式的值比较,按下列规则,选择执行的入口:
如果表达式的值等于某个常量表达式的值,switch语句就从该常量表达式之后的语句序列的第一个语句开始执行,然后一直向下执行,或自动依次进入后继常量表达式之后的语句序列继续执行(如没有 break语句),或执行完语句序列 n+1,结束 switch语句的执行;或在执行某个语句序列过程中遇到转出该switch语句的语句(如break语句),就停止向下执行,结束switch语句的执行。
如果没有相匹配的常量表达式,就从以default为情况前缀的语句序列开始执行。
如果没有相匹配的常量表达式,也没有defaul情况前缀,则该switch语句的这次执行立即结束。
由上述解释可知,“case常量表达式”只是起语句序列入口的作用。在执行switch语句时,根据switch之后的表达式的值找到与该值匹配的入口,就从此人口处开始执行,只要未遇到转出该switch语句的break语句或goto语句,就一直向下执行,也不再理会经过的case后的常量表达式。
如果要使各种情况互相排斥,仅执行各case所对应的语句序列,最常用的办法是使用break语句,各语句序列都以break语句结束。在switch语句中,执行break语句将使控制转向switch语句的后继语句。
由于switch语句的表达式不允许是实型的,当应用于实型值选择情况时,通常需作以下处理:将实表达式乘上一个适当的比例因子,使较大的实表达式值映照到一个较小的范围上,然后再将它转换到整型。
相关推荐:北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |