




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章选择结构程序设计,选择结构的特点是:程序的流程是由多条支路构成的根据不同的情况,只有一条支路被选中执行,而其他支路上的语句被直接跳过。,在C语言中,提供了if语句和switch语句来实现选择结构。,一、if语句(条件选择语句),1、最基本的if语句,表达式,语句组或语句,真,假,基本if语句的通常形式是:,if(表达式)语句;,if(表达式)语句;语句;,if(xy)/*简单语句*/z=x;,可以为逻辑表达式或关系表达式,if(xy)/*复合语句*/z=x;x=x+1;printf(“%dn”,z);,复合语句:是由一对花括号包围起来的一条或多条语句。,复合语句的形式:,选择结构,循环结构,语句1;语句2;语句3;,If(条件)语句1;语句2;语句3;,while(条件)语句1;语句2;语句3;,复合语句,逻辑上我们把复合语句看作是一条语句。,例1:要求用户输入一个实数,然后程序求出这个实数的绝对值并输出。,#includemain()floatx,y;printf(“Pleaseinputx:”);scanf(“%f”,/*定义实型变量x,y*/,/*求x的绝对值并赋给y*/,/*输入x的值*/,/*输出x的绝对值*/,/*编译预处理:包含头文件*/,二、if.else语句,对这一句话“如果x=0则y=x,如果x=0)y=x;if(x=0)语句1;else语句2;,注意:如果使用了复合语句,一定要用大括号把它们括起来。,If(x0)printf(“x为正数n”);x=x+1;elseprintf(“x为负数n”);,If(x0)printf(“x为正数n”);x=x+1;elseprintf(“x为负数n”);,#includemain()intx,y;scanf(“%d,%d”,缩进,缩进,缩进,缩进:是较上一行后退几个字符的程序的书写方法。其目的是为了让源程序层次清晰明了,具有更好的可读性。,三、if.elseif.语句,if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;else语句n;,表达式1,表达式2,表达式3,表达式4,语句1,语句2,语句3,语句4,真,真,真,真,假,假,假,假,语句5,例:比较整数x和y的大小,if(xy)printf(“x大于yn”);elseif(xb)?a:b,一般形式:,表达式1?表达式2:表达式3,表达式1为真,结果为表达式2的值表达式为假,结果为表达式3的结果;运算符“?:”的优先级只在逗号和赋值运算符之前;表达式2和表达式3只可能执行一个;这是C语言中的唯一一个三目运算符;条件运算符的结合方向为“自右自左”。,例:已知a=5,b=6,c=7,d=8,n=2;执行以下语句后表达式的值为多少?n的值为多少?(ab?a:cd?c:d,ab?a:(cd?c:d),表达式值为15,n=2,六、switch语句,switch语句是多分支的选择语句又称开关语句。,switch的一般形式为:,注意:常量表达式必须是整型、字符型。,switch语句的工作流程:,switch(表达式)case常量表达式1:语句组1;break;case常量表达式2:语句组2;break;.case常量表达式n:语句组n;break;default:语句组n+1;break;,执行过程:,(1)当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句;当执行到break语句时,跳出switch语句。(2)如果没有任何一个case后面的“常量表达式”的值,与“表达式”的值匹配,则执行default分支后面的语句。,说明(1):,常量表达式的值必须互不相同各个case和default的出现次序不影响执行结果case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句,例switch(score)case5:printf(“Verygood!”);case4:printf(“Good!”);case3:printf(“Pass!”);case2:printf(“Fail!”);default:printf(“dataerror!”);,运行结果:score为5时,输出:Verygood!Good!Pass!Fail!dataerror!,例:根据考试成绩的等级“a,b,c,d”,打印出“优”,“良”等评语。,#includemain()chargrade;printf(“请输入成绩等级(a,b,c,d):”);scanf(“%c”,case后可包含多个可执行语句,且不必加多个case可共用一组执行语句,如:caseA:caseB:caseC:printf(“score60n”);break;.,说明(2):,例:根据输入的月份值,打印出1998年的某月有多少天。,case9:case11:day=30;break;case2:day=28;break;default:day=-1;if(day!=-1)printf(“1998年的%d月有%d天”,m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开放商逾期解除合同协议
- 更换库房瓦模板合同范本
- 种植合同协议书模板模板
- 畜牧业饲养承包合同协议
- 承包水泥装车队合同范本
- 旅游主播合同协议书范本
- 怎样续签维保合同协议书
- 快递进村合同协议书模板
- 木栅栏改造工程合同范本
- 提供驾驶员服务合同范本
- 百师联盟2025-2026学年高三上学期开学摸底联考化学试卷
- 茶壶课件教学课件
- 孟良崮战役课件
- 幼儿园物资采购应急预案(3篇)
- 卫生院医疗质量管理方案
- 2025年山东省济南中考数学试卷及标准答案
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 2025-2026学年冀教版(2024)小学数学三年级上册教学计划及进度表
- 医学检验职称评审答辩
- 医药药品采购平台建设方案
- 人力资源招聘流程规范及操作手册
评论
0/150
提交评论