网站大量收购独家精品文档,联系QQ:2885784924

第3章 分支结构.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

zzqky + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档