第三章C的流程控制.ppt
《第三章C的流程控制.ppt》由会员分享,可在线阅读,更多相关《第三章C的流程控制.ppt(29页珍藏版)》请在三一办公上搜索。
1、第三章,C+程序的流程控制,第三章 C+程序的流程控制,本章内容主要有:流程控制与程序结构 条件分支结构 循环结构 其他流程控制,学习的目 掌握流程控制与程序结构 掌握条件分支结构 掌握循环结构 了解其他流程控制,第三章 C+程序的流程控制,3.1 流程控制与程序结构,高级语言源程序的基本组成单位是语句。在C+程序中,语句是最小的可执行单元,一条语句由一个分号结束。C+程序的语句按其功能可以划分为两类:操作运算语句 流程控制语句为了能更好的发挥程序强大的功能。就需要有对程序流程进行控制的语句。基本的控制结构有三种:顺序结构,选择结构,循环结构,3.1 流程控制与程序结构,1 顺序结构顾名思义,
2、所谓顺序结构,就是指按照语句在程序中的先后次序一条一条的顺次执行。顺序控制语句是一类简单的语句,上述的操作运算语句即是顺序控制语句,包括表达式语句,输入/输出等。示意图如书图3-1所示。,3.1 流程控制与程序结构,2 条件分支结构顺序结构就像是一条流水线,将程序语句逐一执行,更多的时候我们需要对程序环境进行判断,当满足一定条件的,去执行相应的命令,这就要用到条件结构。条件结构语句分两种:条件分支语句if和开关语句switch。,3.1 流程控制与程序结构,3 循环结构当程序中有重复的工作要做时,就需要用到循环结构。它的应用使得大量重复的工作变得更容易,提高了程序的效率。C+提高了三种循环语句
3、:while、do while和for上述程序结构的一个共同的特点是:只有一个入口和一个出口,因此程序结构之间的衔接非常简单:一个结构的出口就是另一结构的入口。,3.2 条件分支结构,1.if语句 if语句的语法格式为:if(条件表达式)或:if(条件表达式)语句;语句序列;它的意义为:如果条件表达式进行一次测试,且测试为真,则执行后面的语句。当语句序列只包含一条语句时,包围该语句序列的花括号可以省略。,例如:判断用户的输入,如果输入的数值大于0,则在屏幕上显示“正数”。#includevoid main()int a;cina;if(a0)cout”正数”endl;,2.空语句 编译器必须在
4、if条件表达式的后面找到一个作为语句结束符的分号“;”,以标志if语句的结束。这样,如果是下面的代码:if(条件表达式);/空语句做if中的语句语句;则不管条件表达式为真为假,总是接着执行分号后的语句。即相当于if语句不做任何事。,3.2 条件分支结构,3.2 条件分支结构,3.ifelse语句ifelse语句的语法格式为:if(条件表达式)语句序列1;else 语句序列2;它的意义为:如果“条件表达式”的判断结果为真,则执行语句序列1;如果“条件表达式”的判断结果为假,则执行语句序列2。,判断用户的输入,如果输入的数值大于0,则在屏幕上显示“正数”;否则在屏幕上显示“不是正数”。#inclu
5、devoid main()int a;cina;if(a0)cout”正数”endl;else cout”不是正数”endl;,if语句中也可以包含if语句,这就构成了if语句的嵌套。当多个ifelse语句嵌套时,为了防止出现二义性,C+语言规定,由后向前使每一个else都与其前面的最靠近它的if配对。如果一个else的上面又有一个未经配对的else,则先处理上面的(内层的)else的配对。,3.2 条件分支结构,例如:判断a、b、c三个数中的最大值。if(ab)if(ac)max=a;else max=c;else if(bc)max=b;else max=c;,3.2条件分支结构,当多个i
6、felse语句嵌套时,在容易误解的地方可以按照语法关系加上花括号来标识逻辑关系的正确性。如上例可以改写为:if(ab)if(ac)max=a;else max=c;else if(bc)max=b;else max=c;,在将两种格式的if语句混合起来进行嵌套,一定要注意正确理解其含义。如:x=9;if(x2)if(x2)if(x2)if(x4)x=35;else x=78;if与else匹配依据最近分配原则,即else与最近没有匹配的if相匹配。,3.2条件分支结构,4 多分支if语句实质是在双分支的else语句中嵌入另一个if语句。格式:if(表达式1)语句1;else if(表达式2)语
7、句2;else if(表达式3)语句3;-else语句n;这种语句将分别对各表达式依次进行测试,直到表达式为真时转去执行其后的相关语句,并由此退出条件结构。当所有表达式不成立,则执行最后的“语句n”。,例子(多用户密码程序):3个人都可以进入某一程序,分别使用不同的密码进行登陆。如果密码正确,显示相应的欢迎词,否则一声响铃退出程序。#includevoid main()int key;coutkey;if(key=123)cout欢迎您,Rose.n;else if(key=246)cout欢迎您,Joe.n;else if(key=999)cout欢迎您,David.n;else cout密
8、码错误!n程序终止07n;,注意:当嵌套较多(分支较多)时,程序会显得非常繁琐、可读性差、容易出错。这时通常使用C+的switch语句。,3.2条件分支结构,4 switch语句switch语句又称为开关语句,它的用途类似多分支的if 语句。但这种多路选择仅取决于表达式的不同值;用switch语句更加直观。switch语句的语法格式为:switch(整数表达式)case 常量表达式1:;case 常量表达式2:;case 常量表达式n:;default:;,3.2条件分支结构,语句执行时,先对switch后的表达式进行计算,将结果与case后的常量表达式进行比较,如果相等,则转去执行该case
9、后的语句,最后由中断语句break跳出整个switch语句。没有break,则执行完case语句,还接着执行后面的case的语句序列。其中,default是一个可选的语句,可以不用。当所有case都不能与switch相匹配时,转去执行default后面的语句。注意:表达式只能是整型、字符型或枚举型,常量表达式的类型必须与switch中的表达式类型一致。,例如,根据考试成绩的等级输出百分制分数段:char grade;/.switch(grade)caseA:cout“85100n”;break;caseB:cout“7084n”;break;caseC:cout“6069n”;break;ca
10、seD:cout“60n”;break;default:cout“errorn”;break;若grade的值为A,则程序的输出结果为:85100,3.2条件分支结构,几点说明:(1)default语句是可缺省的。(2)switch后面括号中的表达式只能是整型、字符型或枚举 型表达式。(3)在各个分支中的break语句起着退出switch语句的作用。(4)case语句起标号的作用。标号不能重名。(5)可以使多个case语句共用一组语句序列。(6)各个case(包括default)语句的出现次序可以任意。(7)每个case语句中不必用,而整体的switch结构一定要写一对花括号。(8)switc
11、h结构也可以嵌套。,例子:多用户密码程序(用switch语句进行改进):#includevoid main()int key;coutkey;switch(key)case 123:cout欢迎您,Rose.n;break;case 246:cout欢迎您,Joe.n;break;case 999:cout欢迎您,David.n;break;default:cout密码错误!n程序终止!an;,3.3循环控制语句,C+提供了三种循环控制语句:while语句,dowhile语句,for语句。三种语句都由相似的三部分组成:进入循环的条件,循环体,退出循环的条件;完成的功能也类似。所不同的只是三者进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 流程 控制

链接地址:https://www.31ppt.com/p-5940620.html