C++程序设计程序控制结构.ppt
《C++程序设计程序控制结构.ppt》由会员分享,可在线阅读,更多相关《C++程序设计程序控制结构.ppt(69页珍藏版)》请在课桌文档上搜索。
1、1,第 3章 程序控制结构,2,主 要 内 容,实现结构化程序设计的3种基本结构,即顺序结构、选择结构和循环结构,以及实现这3种结构的相关语句、3种结构程序的设计方法及条件运算符的应用。程序中语句的执行顺序称为“程序结构”。计算机程序是由若干条语句组成的语句序列。如果程序中的语句是按照书写顺序执行的,称为“顺序结构”;如果某些语句是按照当时的某个条件来决定是否执行,称为“选择结构”;如果某些语句要反复执行多次,称为“循环结构”。,3,【例3.1】输入的三条边a,b,c,求三角形面积 area=s(s-a)(s-b)(s-c),其中 s=(a+b+c)/2,3.1 顺序结构程序设计,图3.2 顺
2、序结构程序举例,程序执行时按照语句序列的书写顺序,4,源程序清单:#include using namespace std;#include void main()float s,a,b,c,area;cinabc;s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);coutarea=areaendl;,s,a,b,c,area,4.6,5.1,3.5,6.60,7.834539,3.5 4.6 5.1,area=7.834539,-,-,-,5,3.2 选择结构程序设计,选择结构体现了程序的判断能力。在执行过程中,依据运行时某些变量的值确定某些操作是否
3、执行,或者确定若干个操作中选择哪个操作执行,这种程序结构称为选择结构,又称为分支结构。选择结构有3种形式:单分支结构、双分支结构,多分支结构,6,3.2.1 if语句的3种形式,1单分支选择结构:if(表达式)语句;功能:计算表达式的值。如果条件为真(非0)则执行“语句”,否则不执行语句。说明:(1)其中,表达式可为任何类型,常用的是关系表达式或逻辑表达式。(2)语句可以是任何可执行语句,可以是空语句或复合语句、也可以出现内嵌简单的if 语句。,只有一条语句时可省略大括号,7,【例3.2】输入一个学生成绩,如果及格则输出“good!”,否则什么也不做。,#include using names
4、pace std;void main()float g;cing;if(g=60)coutgood!endl;,g,50,-,50,-,67,good!,-,g=60,N,Y,开始,结束,60,8,【例3.3】将两个整数a,b中的大数存入a中,小数存入b中。,算法分析:设一个中间变量temp暂存数据,其操作步骤为:(1)将a 赋给temp,语句为temp=a;(2)将b赋给a,语句为 a=b;(3)将temp赋给b(原来a 的值),语句为 b=temp;,9,void main()int a,b,temp;cinab;if(ab)temp=a;a=b;b=temp;couta=a,b=bend
5、l;,#include using namespace std;,5 9,a,b,5,9,5,9,5,temp,a=9,b=5,-,-,ab,a,b交换,N,Y,开始,结束,9 5,-,a=9,b=5,-,10,2.双分支选择结构,格式:if(表达式)语句1;else 语句2;说明:语句1和语句2可以是一条语句、复合语句或是内嵌if语句等,也可以是空语句。if-else的配对原则是:else 总是与同一层最近的尚未配对的if 语句配对。,只有一条语句时可省略大括号,11,【例3.4】输入一个英文字符,是字母则输出“YES!”,否则输出“NO!”。,12,程序清单:#include using
6、namespace std;void main()char c;cinc;if(c=a,c,YES!,s,NO!,8,8,S,-,-,-,13,程序流程多于两个分支称为多分支多分支程序结构使用嵌套的if-else语句实现。,if()if()语句1 else 语句2 else if()语句3 else 语句4,只有一条语句时可省略大括号,14,只在else分支嵌套,if()else if()语句3 else 语句4,/省略括号表示方式if(表达式)语句1;else if(表达式)语句 2;else if(表达式)语句3;.else 语句n;,15,【例3.5】求如下所示分段函数的y值。,-1 x
7、0,x=0,N,Y,y=0,结束,x0,N,Y,y=1,y=-1,开始,条件x0,else分支嵌套,16,程序清单:,#include using namespace std;void main()int x,y;cinx;if(x0)y=-1;else/else子句是与上面的if(x0)配对 if(x=0)y=0;else y=1;/else子句是与最近的if(x=0)配对 coutx=x,y=yendl;,-5,y,x,-1,x=-5,y=-1,-5,-,-,17,if(x=0)分支嵌套,18,程序清单:,#include using namespace std;void main()in
8、t x,y;cinx;if(x=0)if(x=0)y=0;else y=1;else y=-1;coutx=x,y=yendl;,-5,y,x,-1,x=-5,y=-1,-5,19,C 语言不限制嵌套层数,s170,N,输入s1,结束,s160,N,Y,开始,输出s2,s2=A,s180,s190,s2=B,s2=C,s2=D,s2=E,N,N,Y,Y,Y,【例如】将百分制成绩s1换为5分制成绩s2,可以用如if-else-if语句来完成。,20,void main()int s1;char s2;cins1;if(s160)s2=E;else if(s170)s2=D;else if(s18
9、0)s2=C;else if(s190)s2=B;else s2=A;couts2endl;,书写时要注意:if-else结构尽量缩格对齐,21,嵌套注意的一点是if和else的配对关系,if(ab)if(bc)c=a;else c=b;,if(ab)if(bc)c=a;else c=b;,if(ab)if(bc)c=a;else c=b;,?,为使程序逻辑清晰,将if和else的子句设计成复合语句(即使用 括起来),22,3.2.2 条件运算符?:,(表达式1)?(表达式2):(表达式3)功能:先计算表达式1,如果表达式1的值是非0(真),则其结果取表达式2的值,否则,取表达式3的值。例如:
10、max=(ab)?a:b;当a=3,b=4时:变量max取变量b的值,为4。,23,说明:(1)条件运算符的结合方向“自右向左”ab?a:cd?c:d 则相当于:ab?a:(cd?c:d)(2)三个表达式类型没有限制。如:x?a:b xy?1:1.5(3)条件表达式可以作函数参数,如:printf(max of%d,%d i%dn,a,b,(ab)?a:b);,24,【例3.6】输入一个英文字母,判断是否为英文大写字母,若是大写字母直接输出,否则转换成大写字母输出。#include using namespace std;void main()char ch;cinch;ch=(ch=A,25
11、,3.2.3 switch语句实现多分支选择结构,表达式,语句组1,语句组2,语句组n,语句组n+1,.,=常量 表达式1,=常量 表达式2,=常量 表达式n,其它,在多分支中选择一个分支操作,26,3.2.3 switch语句实现多分支选择结构,switch(表达式)case 常量表达式1:语句组1;break;case 常量表达式2:语句组2;break;case 常量表达式3:语句组3;break;case 常量表达式n:语句组n;break;default:语句组n+1;,27,【例3.7】输入i,根据i 的值输出信息。,#include using namespace std;voi
12、d main()int i;cini;switch(i)case 1:coutI am in case 1.endl;break;case 2:coutI am in case 2.endl;break;case 3:coutI am in case 3.endl;break;default:coutI am in case 4.endl;,i,2,2,I am in case 2.,-,-,28,break是C 语言的一种语句,其功能是中断正在执行的语句。如果省略了break语句,则执行完某个语句组后,将继续执行其后边的语句组。,void main()int i=2;switch(i)cas
13、e 1:coutI am in case 1.endl;case 2:coutI am in case 2.endl;case 3:coutI am in case 3.endl;default:coutI am in case 4.endl;,i,2,I am in case 2.,I am in case 3.,I am in default.,case后的常数可以是任意的,并不一定要从小到大排列,-,-,-,29,【例3.8】case子句的入口表达式是字符常量的程序举例。,void main()char c=x;switch(c)case a:coutI am in case a.end
14、l;break case x:coutI am in case x.endl;break case z:coutI am in case z.endl;break;default:coutI am in case a.endl;,30,【例3.9】将百分制成绩分段。,31,void main()int s;cins;switch(s/10)case 0:case 1:case 2:case 3:case 4:case 5:coutE.endl;break;case 6:coutD.endl;break;case 7:coutC.endl;break;case 8:coutB.endl;brea
15、k;case 9:default:coutA.endl;,s,35,35,E.,-,-,32,3.3 循环结构程序设计,3.3.1 当型循环程序结构 while(表达式)语句;,功能:计算表达式值,其值若为真(非0)则反复执行语句,直到表达式的值为假时为止。说明:(1)表达式可以是任何类型,常用的是关系型或逻辑型表达式。(2)重复执行的操作称为“循环体。(3)在循环体中还可以包含“循环语句”,多重循环。(4)while循环执行原则是“先判断,后执行”。,条件,N,Y,循环体,只有一条语句时可省略大括号,33,构成循环的三要素,循环当中应当有一个变量,控制循环条件的变化,叫做循环控制变量;满足三
16、个基本条件,即:有一个明确的初值 明确的终值 明确的步长值(每次变化的大小),34,【例3.10】设有变量i=0,1,2,3,4,要求输出i的5个值,每个数字间隔3个字符位下一行输出:“We are out of the loop.”。,i=0,结束,i5,N,Y,i+,开始,输出i和空格,输出We,35,程序清单:,void main()int i=0;while(i5)couti;i+;coutendl;coutWe are out of the loop.endl;,i,0,1,1,2,2,3,3,4,4,5,We are out of the loop.,-,-,-,-,-,-,-,3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 程序控制 结构

链接地址:https://www.desk33.com/p-236182.html