C++课件 第三讲2_第1页
C++课件 第三讲2_第2页
C++课件 第三讲2_第3页
C++课件 第三讲2_第4页
C++课件 第三讲2_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、C+程序设计第三章 流程控制顺序结构顺序结构 选择结构选择结构 循环结构循环结构 其它控制语句其它控制语句 应用举例应用举例 C+程序设计语句序列语句序列1 1语句序列语句序列2 2语句序列语句序列 1 1条件?条件?成立成立不成立不成立语句序列语句序列 2 2语句序列语句序列不成立不成立成立成立条件?条件?顺序结构顺序结构 选择结构选择结构 循环结构循环结构由这三种基本结构经过反复嵌套构成的由这三种基本结构经过反复嵌套构成的程序称为结构化程序程序称为结构化程序C+程序设计按照语句出现的先后顺序依次执行。按照语句出现的先后顺序依次执行。 例例1:编写程序:要求输入编写程序:要求输入直角直角三角

2、形的三角形的斜边斜边和一条和一条直直角边角边,求三角形另外一条,求三角形另外一条直角边,周长和面积直角边,周长和面积 。#include#includeusing namespace std;3.1 顺序结构:顺序结构:C+程序设计void main() double a,b,c; double l,s;coutca;b=sqrt(c*c-a*a);l=a+b+c;s=a*b/2;cout另一直角边另一直角边=bendl;cout周长周长=lendl;cout面积面积=sendl;C+程序设计#include using namespace std;void main() unsigned i

3、nt n;char c1, c2, c3, c4;c1=n%10+0; c2=n/10%10+0;c3=n/100%10+0;c4=n/1000+0; coutc1c2c3c4endl;coutn;C+程序设计根据根据条件的值条件的值来判断程序的流向。来判断程序的流向。 if语句,实现语句,实现n分支,要求分支,要求n个表达式个表达式;switch语句,实现多分支;用语句,实现多分支;用1个表达式个表达式1.if语句的三种形式语句的三种形式if (表达式)表达式) 语句语句 if(表达式)表达式) 语句语句1else 语句语句2不能单独存在不能单独存在3.2 选择结构:选择结构:C+程序设计表

4、达式表达式1 1假假真真表达式表达式2 2表达式表达式3 3表达式表达式4 4语句语句5 5语句语句4 4语句语句3 3语句语句2 2语句语句1 1真真真真真真假假假假假假if(表达式表达式1) 语句语句1 else if(表达式表达式2) 语句语句2 else if(表达式表达式3) 语句语句3else if(表达式表达式m) 语句语句m else 语句语句 m+1 if语句的三种形式语句的三种形式C+程序设计表达式表达式语句语句假假(0)真真(非非0)第一种形式的条件语句第一种形式的条件语句 if (表达式表达式) 语句语句 说明:说明:ifif后面的表达式类型任意后面的表达式类型任意语句

5、可以是语句可以是一句或复合语句一句或复合语句。if(x) 语句语句if(x!=0)if(!x)if(xy) t=x; x=y; y=t;coutxy; if(x=0)C+程序设计#include using namespace std;void main() int x,y,t; cout输入输入 x yxy; if (xy) t=x; x=y; y=t; /x与与y交换交换 coutxyy) max = x; min = y;else max = y; min = x;复合语句复合语句 C+程序设计#includeusing namespace std;void main() int x=1

6、,y=2,z=3; coutxy=9080=mark9070=mark8060=mark70mark= 90) cout 优优; else if (80 = mark & mark 90) cout 良良; else if (70 = mark & mark 80) cout 中中;else if (60 = mark & mark 70) cout 及格及格;elsecout= 90) cout 优优; else if (80 = mark) cout 良良; else if (70 = mark) cout 中中; else if (60 = mark) cout

7、及格及格; else cout= 60) cout= 70) cout= 80) cout=90) cout 优优;else cout 不及格不及格; 程序执行一个分支后,其余分支不再执行。程序执行一个分支后,其余分支不再执行。 else ifelse if不能写成不能写成elseifelseif。 当多分支中有多个表达式同时满足,只执行当多分支中有多个表达式同时满足,只执行第一个与之匹配的语句。第一个与之匹配的语句。C+程序设计例例: :编程实现分段函数编程实现分段函数xxxxxy110, 10, 13#includeusing namespace std;void main() doubl

8、e x, y;coutx;if(x0)y=x+1;coutx=x, y=x+1=yendl;复合语句复合语句C+程序设计else if(x1)/ 0 x 1y=1;coutx=x, y=yendl;else/ 1 x y=x*x*x;coutx=x, y=x*x*x=yyz。 if (xy) t=x ; x=y ; y=t; if (yz) t=y ; y=z ; z=t ; if (xy) t=x ; x=y ; y=t ; x x与与y y互换互换z z与与y y互换互换复合语句复合语句为什么要引入中间变量为什么要引入中间变量t?C+程序设计例:考虑下面程序输出结果例:考虑下面程序输出结果

9、: : void main() int x=100,a=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; coutx; 结果:-1该语句不属于选择结构中的语句该语句不属于选择结构中的语句C+程序设计例:例:求一元二次方程求一元二次方程ax2+bx+c=0的根,其的根,其中系数中系数a, b, c为实数,由键盘输入。为实数,由键盘输入。#include #include using namespace std;void main()double a, b, c, delta, p, q;co

10、ut a b c;delta = b*b-4*a*c;p = -b/(2*a);q = sqrt(fabs(delta)/(2*a);C+程序设计if (delta = 0)cout x1 = p+q endl x2 = p-q endl;elsecout x1 = p + j q; cout endl x2 = p - j q endl;思考:思考:(1)a=0?(2)a0,b=0?(3)a0,b0?C+程序设计switch语句语句switch(表达式表达式) case 常量常量表达式表达式1: 语句组语句组1;case 常量表达式常量表达式2: 语句组语句组2;case 常量表达式常量表达

11、式n: 语句组语句组n;default : 语句组语句组n+1;可选可选break;break;break;必须为必须为整型整型或或字符型字符型C+程序设计说明:说明:10 常量表达式的常量表达式的值值必须必须互不相等互不相等。20 语句组语句组i可以含有多个语句。可以含有多个语句。30 语句中含有语句中含有break语句时,执行完后退出语句时,执行完后退出switch语句。语句。40 若某组语句不含若某组语句不含break语句,则本组语句语句,则本组语句执行完毕后将继续执行下一组语句。执行完毕后将继续执行下一组语句。C+程序设计50若没有常量值与表达式值相等,执行若没有常量值与表达式值相等,

12、执行default语句语句n+1,若无该语句若无该语句,退出退出switch语句。语句。60可以多个可以多个case共用一组语句。共用一组语句。80用用switch语句实现的多分支结构程序,可用语句实现的多分支结构程序,可用if语句或语句或if语句的嵌套来实现。语句的嵌套来实现。70switch语句允许嵌套。语句允许嵌套。C+程序设计例例:用用switch结构求分段函数结构求分段函数 2a+1 (1=a2)b= a2-3 (2=a=1&a=2&a4:. default: b=a;关系表关系表达式达式思考:思考:若省去若省去break语句,情况会怎样?语句,情况会怎样? brea

13、k;break;C+程序设计例:例:从键盘上输入学生的分数,要求当学生的从键盘上输入学生的分数,要求当学生的分数分数 90100very good! 8090 good 6080 pass 050 FailC+程序设计#includeusing namespace std;void main() int score; cinscore;switch(score/10) case 10: case 9: coutVery good!n;case 8: coutGood!n;case 7:case 6: coutPass!n;case 5: coutFail!n;default: coutinput error; break;break;break;break;C+程序设计例:例:执行下列程序段后,输出结果为:执行下列程序段后,输出结果为:int a=1,b=0;switch(a) case 1: switch(b); case 0: cout“*0*”;break; case 1:cout“*1*”;break; case 2

温馨提示

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

评论

0/150

提交评论