选择结构(重点)_第1页
选择结构(重点)_第2页
选择结构(重点)_第3页
选择结构(重点)_第4页
选择结构(重点)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章结构选择(重点)、本章概述、4.1 if语句4.2 switch语句4.3实例解析、4.1 if语句、4.1.1单个分支if语句通用格式如下:if(表达式)语句;说明:确定条件表达式,当值为true(非零)时执行语句,当值为false(零)时跳过语句。有关执行过程,请参阅右图。4.1.1单季度if语句(例如,学生分数设置60除以及格分数线,然后用单季度if语句说明:if(grade=60)printf( passedn );如果x大于y,则输出x,并将if (x y) printf (%d ,x)描述为单个分支if语句。4.1.2常规格式的双分支if语句:if(表达式)语句1;Else语

2、句2;说明:不同于在条件为真(非零)或假(零)时执行其他指定操作的单个分支if语句。判断条件运算式,如果其值为true(非零),则执行陈述式1。值false (0)会执行陈述式2。执行过程显示在流程图4.2中。例如:学生成绩分割:分数大于或等于60分时输出“passed”,分数小于60分时输出“failed”。以双分支if语句为例:4.1.2双分支if语句,if(grade=60)printf( passedn );else printf(“failedn”);4.1.2双分支if语句,(1)grade=60?printf( passedn ):printf( failedn );(2)x y

3、?printf(“% d”,x):printf(“% d”,y);这表明相应的语句修改条件运算符可以完成与if else结构相同的功能。附注:对于单一和双分支if后面的表示式,通常是逻辑表示式或关系表示式,实际上表示式类型可以是任何数字类型,例如整数、实数、文字和以指标为基础的资料。只要表达式的值非零,就假定为true。只要表达式的值为零,就认为是假的。示例:if(6)printf( passedn );if(A)printf(“% d”,A);这些是合法的if语句。对于双分支if语句,else子句不能单独用作语句,它必须是if语句的一部分,用于与if成对使用。4.1.2双分支if语句,不能在

4、if语句后的表达式后添加分号。此外,语句后面的分号不应丢失。可以只包含If和else后面包含的一条语句,也可以包含多条语句。此时,将几条语句捆绑成一条复合语句很重要。示例:if(x 100)x-;s=x;else x;s=x;此时,分号将不再添加到“”之后,因为“”内有完整的复合语句。不再需要添加分号。4.1.2双分支if语句,4.1.3多分支if语句,为了解决判断多个条件的问题,可以在if语句嵌套,即if语句中包含一个或多个if语句。典型格式为if(表达式1)语句1。Else if(表达式2)语句2;Else if(表达式3)语句3;Else if(表达式m)语句m;Else语句n;说明:依

5、次对多个条件执行判断测试,如果符合条件,则在该条件下执行操作,跳过其他部分。如果条件为true(非零),则执行最后一个else指定的操作。4.1.3多季度if语句,示例4-1程序实现提供了必须输出分数级别a、b、c、d、e的百分比段成绩。90分以上是a等,8980是b等,7970是c等,6960是d等,60分以下的e等。,4.1.3多分支if语句,4.1.3多分支if语句,源程序# include main()int grade;printf(input the grade :);Scanf (%d,):输入大于100或小于0的数字会产生什么结果?改进过程:# include main()in

6、t grade;printf(input the grade :);Scanf (%d,4.2 switch语句,4.2.1 switch语句简介使用多个if语句(if语句的嵌套)解决实际生活中的各种选择问题,如人口统计分类、工资统计分类、银行存款分类等,但在季度较多的情况下,嵌套的if语句数较多,程序较长,可读性可能会降低。c语言提供了直接处理多个分支选择的switch语句,其通用格式如下:switch(表达式)case常量表达式1:语句1;Case常量表达式2:语句2;Case常数表达式n:语句n;Default:门m;说明:进入switch结构后,根据表达式值从上到下查找匹配的case,

7、然后执行以下语句:4.2.1 switch语句简介,4.2.1 switch语句简介,示例4-1用switch语句替换:源程序main()int grade;printf(input the grade :);Scanf(%d),main() int grade比较;printf(input the grade :);Scanf (%d,说明:根据switch后面的表达式值找到匹配的case分支后,将以下所有语句作为门户运行,而不进行判断:流程图是以下页面图表:4.2.1 switch语句简介、“执行结果”input the grade :198 a b c d e、4.2.2 break语句

8、可以通过使用switch结构从各种结果中选择一个结果的功能,使用前面学习的break语句完成此操作。对于上一页流程图,修改来源程式main() int grade。printf(input the grade :);Scanf(%d,说明:1)。switch结构的执行部分是由一些case子句和基本default子句组成的复合语句。特别是要用一对“”括起来。2.switch后面的表达式通常是整数表达式或字符表达式,其后面的常量表达式也必须是整数表达式或字符表达式,但是case和常量表达式之间必须有空格。示例:case 6 9 : printf(“ok”);合法。在交换机结构中使用4.2.2 br

9、eak语句,3 .执行switch语句时,根据后面表达式的值匹配case子句。请注意,“case常量表达式”仅用作语句标签,而不是此处的条件判断。如果匹配的case子句是入口标签,则从此标签开始执行以下语句:因此,在执行case子句后,必须添加break语句,以使进程脱离switch结构。如果没有匹配的case子句,则执行default子句。如果default子句位于最后一个之后,则可以不添加break语句。4.每个case子句的出现顺序对运行结果没有影响。也就是说,可以按任意顺序放置它们。如果在switch结构中使用4.2.2 break语句,则为5 .每个case可以有一个或多个语句,因为

10、使用多个语句时不必用“”括住它们。6.多个case可以共享一组执行语句。范例:case A: case a: countBreak成绩合计为大写a或小写a。7.switch结构的case子句中的常量表达式不能具有相同的值。8.switch结构允许嵌套。在Switch结构中使用4.2.2 break语句,解析4.3实例,示例4-2在键盘上输入三个整数a、b和c以输出最大的输出。分析编程思想:首先找到a和b之间的大值,然后将这个大值与c进行比较,就可以找到更大的值。这是三个数字中最大的。,源程序解决方案1: main () int a、b、c;Printf(input a、b、c :);Scanf(%d,%d,%d,%d,4.3实例解析),解决方案2: main () int a,b,c,maxPrintf(input a、b、c :);Scanf (%d,%d,% 4.3实例解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论