- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第3章〓分支结构
3.1〓知识要点回顾
顺序结构的程序虽然能解决计算、输出等问题,但不能进行判断再选择。对于要先进行判断再选择的问题就要使用分支结构。
本章主要掌握的知识要点:
(1)if语句的三种形式。
(2)if语句的嵌套。
(3)switch语句。
3.1.1〓if语句的三种形式
用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。
1.If…else语句
if(表达式
)
{
〓复合语句1
}
else
{
〓复合语句2
}
其语义是:如果表达式的值为真,则执行复合语句1,否则执行复合语句2。其执行过程如图3-1所示。
图3-1〓程序执行过程
说明:
(1)if和else是C语言的关键字。if后面的括号是必不可少的,但else后面不能加表达式,else(表达式)这种写法是错误的。
(2)if(表达式)中的表达式通常是逻辑表达式或关系表达式,也可以是其他表达式,如赋值表达式等,甚至也可以是一个变量。
例如,if(a=5)和if(b)都是允许的。if(a=5)中表达式的值(5)永远非0,所以其后的语句总是执行的。当然这种情况在程序中不一定会出现,但在语法上是合法的。if(b)等价于if(b!=0)表示只有当b的值不是零时,才能执行后面的语句。
注意区别if(x==0)和if(x=0)。if(x==0)中表达式是进行比较,其值要么是1(x是0),要么是0(x不是0)。if(x=0)中表达式是进行赋值,其值为0。
(3)else不是一条独立的语句,它只是语句的一部分。在程序中else必须与if配对,共同组成一条if…else语句。
(4)复合语句中如是有多个语句花括号不能省,要注意的是在}之后不能加分号;若只有一条语句可省略花括号。
2.省略else的if语句
if(表达式)
{
〓复合语句
}
其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程如图3-2所示。
图3-2〓程序流程
当条件较多时,可以用多个省略了else的if语句,格式如下:
if(表达式1)
{
〓复合语句1
}
if(表达式2)
{
〓复合语句2
}
……
if(表达式n)
{
〓复合语句n
}
此处不管if表达式是真还是假,都会判断下一个if表达式。如果是真就执行复合语句,然后判断下一个if表达式;如果是假,直接判断下一个if表达式。n个if语句要判断n次。
3.增加elseif语句
前两种形式的if语句一般都用于两个分支的情况。当有多个分支选择时,可采用if-else-if语句,其一般形式为:
if(表达式1)
{复合语句1}
elseif(表达式2)
{复合语句2}
……
elseif(表达式m)
{复合语句m}
else
{复合语句n}
其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句,然后跳到整个if语句之外继续执行程序;如果所有的表达式均为假,则执行语句n,然后继续执行后续程序。即只要找到一个表达式的值为非0,就结束判断。
3.1.2〓if语句的嵌套
当if语句中的执行语句又是if语句时,即构成了if语句嵌套的情形。其一般形式可表示如下:
1.在if子句中嵌套
if(表达式1)
〓if(表达式2)
〓〓{复合语句1}
〓else
〓〓{复合语句2}
else
〓{复合语句3}
2.在else子句中嵌套
if(表达式1)
〓{复合语句1}
else
〓if(表达式2)
〓〓{复合语句2}
〓else
〓〓{复合语句3}
说明:在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。为了避免这种二义性,C语言规定,else总是与它前面最近的if配对。
3.1.3〓switch语句
switch语句实际上是if-else语句的变形。在某些情况下,使用switch语句要比if语句更简洁、易读。
switch语句的一般形式为:
switch(表达式)
{
〓case常量表达式1:语句1;break;
〓case常量表达式2:语句2;break;
〓……
〓case常量表达式n:语句n;break;
〓default:语句n+1;break;
}
其语义是:计算switch(表达式) 中表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如果表达式的值与所有case后的常量表达式均不相同时,则执行defau
您可能关注的文档
最近下载
- 电气技术协议(样本).docx
- 英语句子基本结构课件(共50张PPT).ppt
- 2024年江苏海事职业技术学院单招职业技能测试题库(精练).docx VIP
- 齐鲁制药有限公司生物医药产业园项目环境影响评价报告全本.docx
- 纪委书记2025年度民主生活会领导班子“四个带头”对照检查材料.docx VIP
- 一种可折叠便携手柄高压锅.pdf VIP
- 2024年江苏海事职业技术学院单招职业技能测试题库(夺分金卷).docx VIP
- 基于单个FeFET的高能效CAM及其操作方法.pdf VIP
- 人教版小学五年级英语下册(RJ) PEP教案.pdf VIP
- 2024年江苏海事职业技术学院单招职业技能测试题库及答案(最新).docx VIP
文档评论(0)