- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 复合数据类型 第4章 选择结构 4.1 语句与复合语句 4.2 二分支选择结构 4.3 多分支选择结构 4.4 程序举例 习题 4 本章学习目标 l?为了控制计算机各操作的执行次序,程序设计语言中引入了控制语句。选择结构是结构化程序设计的三种结构之一。本章将进行详细介绍二分支和多分支选择结构。 4.1 语句与复合语句 一、语句 C语言中规定,在表达式的后面加上一个分号(;)即成为语句。例如: X=1; 赋值语句 scanf(“%d”,y); 输入语句 y++; 自增运算语句 在C语言中除了结构控制行之外,其他的均由语句组成,即所有的语句均由一个分号(;)结束。 4.1 语句与复合语句 有时为了程序的需要,我们会遇到只有一个分号而没有表达式的情形,这在C语言中也是合法的,称为空语句,例如: main() { ; /*空语句*/ } 4.1 语句与复合语句 二、复合语句 在C语言中,用一对花括号“{ }”将若干条语句括起来成为一个语句组,称为复合语句,其一般形式如下: { 语句1; 语句2; 语句3;……; 语句n ; } 花括号内语句的数量、类型不限,可以是声明语句、赋值语句等; 4.1 语句与复合语句 一个复合语句在语法上被视为一条语句。例如: #include stdio.h main() { …… {int a,b,c; /*变量a,b,c只能在此复合语句内使用*/ a=10; b=20; c=a+b; printf(“%d,%d,%d\n”,a,b,c); } …… } 注意,复合语句内的定义变量语句要出现在执行语句之前,且复合语句内定义的变量只能在该复合语句内部有效。 4.2 二分支选择结构 一、简单的二分支选择结构 C语言的if语句有两种基本形式。 1、独立if结构 (1)语法形式 if(表达式) 语句 其中, ①if是C语言的关键字; ②表达式可以是任意的表达式且一对圆括号不可缺省; ③语句可以是一条简单语句或复合语句。 4.2 二分支选择结构 (2)首先计算表达式的值,然后根据其真假来决定程序的走向。若表达式为真(值为非零)则执行语句,若为假(值为零)则不执行语句。退出分支结构后程序继续执行if结构后面的语句。 4.2 二分支选择结构 (3)举例 if(ab) b++; 若a的初值为20,b的初值为10,则表达式(ab)为真,执行语句“b++;”,则a的结果为20,b的结果为11。 若a的初值为10,b的初值为20,则表达式(ab)为假,不执行语句“b++;”,则a和b均保留初值:10和20。 4.2 二分支选择结构 如果语句为复合语句,将以上程序段改为: if(ab) { b++; a++; } 则, 若a的初值为20,b的初值为10,则表达式(ab)为真,执行语句“b++;”和“a++;”, a的结果为21,b的结果为11。而若a的初值为10,b的初值为20,则表达式(ab)为假,语句“b++;”和“a++;”均不被执行,a的结果仍为10,b的结果仍为20。 4.2 二分支选择结构 若将复合语句的一对花括号去掉则程序段成为: if(ab) b++; a++; 此时,语句“a++;”已不再属于if结构,不管条件为真或为假,对于整个程序来说它都将被执行。 4.2 二分支选择结构 2、if-else结构 (1)语法形式 if(表达式) 语句1 else 语句2 其中, ①if和else是C语言的关键字,表达式及语句1、语句2解释同上; ②else不能独立存在,它必须与if语句配对、组合方可使用,否则会产生语法错误; ③else后面绝对不能跟条件表达式,它执行的条件是隐含的,即与之配对的if的反面。 4.2 二分支选择结构 2)执行过程 首先计算表达式的值,然后根据其真假来决定程序的走向。若表达式为真(值为非零)则执行语句1,若为假(值为零)则执行语句2。退出分支结构后程序继续执行if-else结构后面的语句。 4.2 二分支选择结构 (3)举例 if(ab) b++; else a++; 若a的初值为20,b的初值为10,则表达式(ab)为真,执行语句“b++;”,然后退出if-else结构,则a的结果为20,b的结果为11。 若a的初值为10,b的初值为20,则表达式(ab)为假,执行语句“a++;”,然后退出if-else结构,则a的结果为11,b的结果为20。 4.2 二分支选择结构 前文曾提到过语句1和语句2都可以是复合语句,但如果不慎将语句1的花括号丢了,则编译时会出现语法错误,如下例: main() {int a=1,b=2;
文档评论(0)