第3章 流程控制语句
更新时间:2024-06-16 06:55:01 阅读量: 综合文库 文档下载
- 第3章适应几次就好了推荐度:
- 相关推荐
第3章 流程控制语句
主讲内容
3.1.1 语句的分类 3.1.1 语句的分类
?3、空语句
?只由一个分号构成的语句称为空语句。
?4、复合语句
?由一对“{}”括起来的一组语句构成一个复合语句。复合语句描述一个块,在语法
上起一个语句的作用。
?5 、流程控制语句
?流程控制语句用来控制或改变程序的执行方向的语句。
3.1.2 结构化程序控制结构
?在程序的所有流程控制方式中,有三种是最基本的,因此程序结构也就有三种基
本的程序结构:
?1、顺序结构:按语句的先后顺序执行。
?2、条件分支结构:由特定的条件决定执行哪个语句的程序结构。 ?3、循环结构:由特定的条件决定某个语句重复执行次数的控制方式。
3.2.1 if语句
?if
语句称为分支语句或条件语句,其功能是根据给定的条件,选择程序的执行方向。if语句的基本格式为: if (表达式) 语句1; else 语句2;
?该语句的执行流程是,先计算表达式的值,若表达式的值为真(或非
0),则执行
语句1,否则(表达式的值为假,或为0),执行语句2
3.2.1 if语句
?【例3.1】 输入一个年份,判断是否为闰年。
?分析:假定年份为year, 闰年的条件是:year%4==0&&year0!=0||year@0==0。 ?#include
? cout<<\输入年份:\? cin>>year;
? if (year%4==0&&year0!=0||year@0==0) cout< ? else cout<< year<<\不是闰年\?} ?运行结果: ?输入年份: ?1900 ?1900 不是闰年 3.2.1 if语句 ?if语句中,如果内嵌语句又是if语句,就构成了嵌套if语句。嵌套if语句则可以实现多选一的情况。嵌套有两种形式,一种是嵌套在else分支中,格式为: ?if (表达式1) 语句1; else if (表达式2) 语句2; else if ? else语句n; ?第二种是嵌套在if分支中,格式为: ?if (表达式1) if (表达式2) 语句1; else 语句2 ; 3.2.1 if语句 ?【例3.2】从键盘上输入三个整数,输出其中的最大数。 ?方法1:采用第二种嵌套形式 ?#include ? int a, b, c, max; ? cout<<\输入三个整数:\? cin>>a>>b>>c; ? cout<<\? if(a>b) if(a>c) max=a; //a>b且a>c ? else max=c; //a>b且a ?运行结果: ?输入三个整数: ?3 7 12 ?a=3 b=7 c=12 ?最大数为:12 3.2.1 if语句 ?方法2:采用第一种嵌套形式 ?#include ? int a,b,c,max; ? cout<<\输入三个整数:\? cin>>a>>b>>c; ? ? ? ? ? ?} cout<<\if(a>b&&a>c) max=a; else if(b>a&&b>c) max=b; else max=c; cout<<\最大数为:max=\ ?运行结果: ?输入三个整数: ?8 1 5 ?a=8 b=1 c=5 ?最大数为:8 3.2.2 switch 语句 ?C++中提供了一个switch语句,称为开关语句,也可以用来实现多选一。它根据给定条件从多个分支语句序列中选择一个语句序列作为入口开始执行。格式为: ?switch (表达式) { case常量表达式1: <语句序列1;> case常量表达式n: <语句序列n;> 3.2.2 switch 语句 ?关于switch语句,有几点需要注意: ?(1)各个case(包括default)分支出现的次序可以任意,通常将default放在 最后。 ?(2)break语句可选,如果没有break语句,每一个case分支都只作为开关语句 的执行入口,执行完该分支后,还将接着执行其后的所有分支。 ?(3)每个常量表达式的取值必须各不相同,否则将引起歧义。 ?(4)允许多个常量表达式对应同一个语句序列 3.2.2 switch 语句 ?【例3.6】 运输公司对所运货物实行分段计费。设运输里程为s,则运费打折情况如下: ?s<250 不打折扣 ?250<=s<500 2%折扣 ?500<=s<1000 5%折扣 ?1000<=s<2000 8%折扣 ?2000<=s<3000 10%折扣 ?3000<=s 15%折扣 ?设每公里每吨的基本运费为p,货物重量为w,折扣为d,则总运费f为: ?f=p*w*s*(1-d) ?设计程序,当输入p、w和s后,计算运费f。 ?分析:如果用switch语句,必须使表达式符合语法要求。分析发现,里程s的分段点均是250的倍数,因此,将里程s除以250,取整数商,便得到若干整数值。 3.2.2 switch 语句 ?程序:#include ? float p,w,d,f; ? cout<<\输入运输单价p,重量w和里程s:\? cin>>p>>w>>s; ? c=s/250; ? switch(c){ ? case 0: d=0; break; ? case 1: d=0.02; break; ? case 2: case 3: d=0.05; break; ? case 4: case 5: case 6: case 7: d=0.08; break; ? case 8: case 9: case 10: case 11: d=0.1; 3.2.2 switch 语句 ?break; ?default: d=0.15; ? } ? f=p*w*s*(1-d); ? cout<<\运输单价:\重量:\里程:\? cout<<\折扣:\? cout<<\运费:\?} ?运行结果: ?输入运输单价p,重量w和里程s: ?50 150 460 ?运输单价:50 重量:150 里程:460 ?折扣:0.02 ?运费:3.381e+006 3.3.1 for 循环 ?for语句也称for循环,语句格式为: for (表达式1;表达式2;表达式3) 循环体语句 ?该语句的执行过程是,先求表达式1的值,再求表达式2的值,如果表达式2的值 为真(或非0),则执行循环体语句,并求表达式3的值,然后再计算表达式2的值,并重复以上过程,直到表达式2的值为假(或为0),结束该循环语句。 3.3.1 for 循环 ?下图是for语句的执行流程。 3.3.1 for 循环 ?关于for语句,有以下几点说明: ?(1)从执行流程看,for语句属于先判断型,因此与while语句是完全等同的。 ?(2)for语句中的三个表达式都是包含逗号表达式在内的任意表达式。从逻辑关 系看,循环初始条件可在表达式1中给出,循环条件的判断可包含在表达式2中,而循环条件变量的修改可包含在表达式3中,也可以放在循环体中。 ?(3)for语句中的三个表达式可部分或全部省略,但两个分号不能省略。 3.3.1 for 循环 ?【例3.8】 这是一个古罗马数学家伦纳德?斐波那契提出的有趣的问题。假定每对兔子每月生出一对小兔子,新生的一对小兔子三个月后又可以生小兔子,假定所有兔子都不会死,一年后会有多少对兔子。具体说,第一个月只有一对兔子,第二个月由于新生小兔子不能生育,仍然只有一对兔子,第三个月小兔子开始生育,因此当月有两对小兔子,此后每个月的兔子数都是上个月和当月新生兔子数之和。由此可抽象出一个数列:0,1,1,2,3,5,8,??。这个数列称为Fibonacii数列,可用函数描述如下: 3.3.1 for 循环 3.3.1 for 循环 ?#include ? int fib0=0,fib1=1,fib2; ? cout< ? cout< ? if(n%5==0) cout< 3.3.1 for 循环 ?运行结果: ?0 1 1 2 3 ?5 8 13 21 34 ?55 89 144 233 377
正在阅读:
第3章 流程控制语句06-16
四年级经典诗文竞赛试题07-27
大学英语六级听力考试必备词汇表05-12
聚氨酯与聚氨酯弹性体化学与工艺04-25
iexplore.exe是什么?02-09
门主ICEM非结构网格1--四面体网格05-12
程序设计基础形考作业答案11-17
三个技术创新者的命运05-03
2×350MW机组设计参数汇总11-13
- 清真菜谱
- 我国国民经济和社会发展十二五规划纲要(全文)
- 高三物理机械振动和机械波复习2
- 浙江省公路山岭隧道机械化装备应用指导手册 doc - 图文
- 2018届高三数学文科二轮复习:专题检测(九) 导数的简单应用
- 2015年上海市公务员录用考试《行政职业能力测验》试卷(B类)
- 七年级道德与法制下册
- 大班户外游戏教案
- 病虫害预警 - 图文
- 某养鱼场为了提高经营管理水平
- 汉中市勉县尧柏余热汽机规程 10
- 烹饪试卷
- 事业单位考试公共基础知识专项分类题库训练
- 语文:第2课 走一步,再走一步 课堂导学案(人教版 七上)
- 天汉使用手册
- 人教版小学三年级数学下册教学计划
- 房地产销售管理完全操作手册122页
- 2009年评审通过具有中学高级教师专业技术资格人员名单...
- 《15秋公共关系学》作业1
- 2017最新版监理公司三标一体管理手册
- 语句
- 流程
- 控制
- Lesson16高级英语课程教案第一册 - 图文
- 送料机械手的设计
- 传染病知识:霍乱猩红热等
- 小学消防演练方案
- 2014年注册管理会计师考试 CMA 财务决策 part 2问答题主观题及答
- 如何培养学生的非智力因素
- 销售代理合同
- 毕业设计 - 5KVA单相变压器的设计分析
- 预制砼构件工厂化生产监理实施细则
- 幼儿园混龄区域活动中幼儿合作行为的培养研究
- 应收账款的风险及其防范 毕业论文
- 基层反映:当前企业生存发展存在的困难及对策建议
- 《课程与教学论》复习资料
- 试卷正文
- 西方文化名著导读2018尔雅答案100分
- 2012年国家公务员考试半月谈评论汇总
- 某工程土方开挖方案
- 四川大学《项目管理学》试题库
- 毕业设计11说明书
- 卧式单面多轴钻孔组合机床动力滑台的液压系统设计-开题报告 - 图