版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章,控 制 语 句,第3章 控制语句,语句是c+程序中最小的可执行单元。一条语句由一个分号结束。语句可以很简单,也可以很复杂。 表达式语句是任何一个表达式加上一个分号。 声明语句: 空语句是指只有一个分号的语句(最简单的语句) 。,; int x,y,c,n,a,b; a=1+n*2; x=3,y=10,c=1; ab ? a+ : b+;,复合语句:用括起来的一组语句。 复合语句也称为块(语句块),在语法上起一个语句的作用。 对单个语句必须以“;”结束,对复合语句,其中的每个语句仍可以“;”结束,而整个复合语句以“”结束。, int i,j; i=10; j=i+50; ,3.1 顺序控
2、制语句 3.2 选择控制语句 3.3 循环控制语句 3.4 跳转语句,31 顺序控制语句,所谓顺序结构,就是按照语句的顺序一条一条地执行。 顺序控制语句是一类简单语句,包括:表达式语句、空语句、声明语句、输入输出语句等。 输入输出 C+提供了I/O流类库 #include I/O流:在C+中,将数据从一个对象到另一个对象的流动抽象为流。数据的输入输出是通过I/O流来实现的。从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。,311 输出,cout实现将数据输出到标准输出流(显示器)的操作 一般格式为: cout ; cout:类库中的预定义对象(代表标准输出) :预定义的插入
3、符,向输出流中插入字符,输出 字符 数字 字符串,#include void main( ) cout a ; cout 1 2 3 4 ; cout Visual C+ endl; double d=9.86; cout dendl; ,C+提供了一些操纵符可以直接嵌入到输入输出语句中来实现IO格式控制。,表31 常用的I0 类库操纵符,输出格式控制 八进制和十六进制数的输出(例3.2) dec操作符(以十进制形式输出) oct操作符(以八进制形式输出) hex操作符(以十六进制形式输出) 控制输出宽度(例33) setw操纵符可以指定每个数值占用的宽度 控制输出精度(例34) setpre
4、cision操纵符可以设置显示数值的精度。,在使用 setprecision 和setw操纵符时要在程序开头include。,例3.2 #include void main( ) int n=100; cout 十进制: dec n endl; cout 八进制: oct n endl; cout 十六进制: hexn endl; ,十进制:100 八进制:144 十六进制:64,例3.3 #include #include void main() double f=123.45; cout setw(10) 1234567890 endl; cout setw(10) f endl; cou
5、t setw(8) f endl; cout setw(6) f endl; cout setw(4) f endl; ,1234567890 123.45 123.45 123.45 123.45,setw只对下个输出有效,例3.4 #include #include void main() double d=123.456789; cout d endl; /缺省为6位有效数字 cout setprecision(7) d endl; cout setprecision(8) d endl; cout setprecision(9) d endl; ,123.457 123.4568 12
6、3.45679 123.456789,setw只对下个输出有效 setprecision一直有效 dec/oct/hex一直有效,cin读取键盘输入的字符和数字,并把它赋给指定的变量。 一般格式为: cin ; cin:类库中的预定义对象(标准输入) :预定义的提取运算符,312 输入,例:,#include void main() char c1, c2, c3; cinc1;/A cinc2c3; 程序执行到A行时,等待用户输入数据。若输入: Abc ,则cin分别将字符A、b、c赋给变量c1、c2、c3。,例3.5 #include void main( ) int i,j; cout
7、i j; cout i + j i+j endl; ,i j =12 45 12+45=57,例:操纵符的应用 void main() int i, j, k, l; coutocti;/输入为八进制数 cinhexj;/输入为十六进制数 cink; /输入仍为十六进制数 cindecl;/输入为十进制数 cout”hex:i=”hexiendl; cout”dec:j=”decjt”k=”kendl; cout”oct:l=”octl; coutdecendl; /恢复十进制输出状态 ,32选择控制语句,C+中,语句默认都是顺序执行,如果碰到选择或循环语句,顺序执行的规则就要改变。 C+中的
8、选择控制语句有 if语句 ifelse语句 ifelse if语句 switch语句,321 if语句,语法形式 if ( ) ; 其功能是:当值为true(非0)时执行后面语句。,表达式称为条件表达式,可以是C+中的任意合法表达式,如:算术表达式、关系表达式、逻辑表达式、逗号表达式等。,语句称为内嵌语句,可以是单一语句、复合语句、空语句。,#include void main( ) int x; cout x; if(x0) x=-x; cout x endl; ,将用户输入的数值转换为绝对值,并输出,321 if else语句,语法形式: if ( ) ; else ; 其功能是:当为tr
9、ue(非0)时执行 ;当 为false(0)时执行。,#include void main( ) int x; cout x; if(x0) cout -x endl; else cout x endl; ,显示用户输入数值的绝对值,例3.8 以下程序判断输入的年份是否为闰年(凡是能被400整除的,或不能被100整除但能被4整除的年份为闰年): #include void main( ) int year,rem4,rem100,rem400; cout year; rem400=year%400; rem100=year%100; rem4=year%4; if(rem400=0)|(rem
10、4=0) else cout“c”endl;,if(ab) if(ac) cout“a”endl; else cout“c”endl; ,if(ab) if(ac) cout“a”endl; else cout“c”endl;,323 if.else if语句,若嵌套在else分支中,可简写为 if (); else if(); else if else ;,#include void main( ) int x; cout x; if (x=90) cout =80) cout =70) cout =60) cout ”D” endl; else cout “E” endl; ,例3.9 以
11、下程序将用户输入的分数转换成等级: A(90), B(8089), C(7079), D(6069), E(60).,例3.10 以下程序根据输入的x和y坐标值来判断是第几象限: #include void main( ) int x,y; cout x y; if (x=0 switch (ch) case m : case M : case w : case W : cout 8学分 endl; break; case p : case P : case c : case C : cout “5学分” endl; break; case e: case E: cout“6学分”endl;
12、break; default: cout输入的课程代号不正确endl; /end switch /end main,为什么case后没有任何语句?,break?,使用switch语句应注意下列问题: 表达式包括整型、字符型、布尔型或枚举型表达式。 各常量表达式的值不能相同,但次序没有要求。 每个case分支可以有多条语句,但不必用 。 每个 case 语句只是一个入口标号,并不能确定执行的终止点,因此每个case分支的最后应该加break语句,用来结束整个switch结构,否则会从入口点开始一直执行switch结构的结束点。 当若干分支需要执行相同操作时,可以使多个case分支共用一组语句。,
13、例3.12以下程序根据用户选择显示相应计算机语言: (涉及枚举类型,日后自学) #include void main( ) enum softwarevc=1,vb,vfp; int choice; cout choice; switch (choice) case vc: cout“Visual C+” endl; break; case vb: coutVisusl Basic endl; break; case vfp: coutVisual Foxproendl; break; default: cout“选择错误endl; ,33 循环控制语句,提供重复处理的能力 ,当某一特定条件为
14、true时,循环语句就重复执行 ,并且 每循环一次就会测试一下循环条件 ,如果为false 则循环结束 ,否则继续循环。 C+支持三种格式的循环控制语句: while语句 dowhile语句 for语句 三者可以完成类似的功能 ,不同的是它们控制循环的方式。,331 while语句,while语句的一般形式为: while() ;,while语句的执行流程图,求表达式 的值,执行循环体 语句,表达式的 值为真?,是,否,例3.13 #include void main( ) int digit,num; cout num; while (num!=0) digit=num%10; coutdi
15、git; num=num/10; coutendl; ,以下程序将用户输入的整数反向显示出来,332 do语句,do语句的一般形式为: do ; while(); 与while语句不同的是do循环中的 至少会执行一次,而while语句当条件第一次就不满足时,语句一次也不会被执行。,否,是,do-while语句的执行流程图,例3.14 采用do语句重新编写例3.13的程序 #include void main( ) int digit,num; cout num; cout反向显示结果:; do digit=num%10; coutdigit; num=num/10; while (num!=0
16、) coutendl; ,对输入的正整数反向输出 while(num0) ,333 for语句,for语句通常用于预先知道循环次数的情况,其一般形式为: for(;) ;,可以是一个定义语句或表达式语句,一般用于对一组变量进行初始化或赋值。 用于控制循 环,当它的值为true (非0)时,循环会继续下去, 而它一旦为false(0),则 终止循环。 在每次循环执行完成后执行 , 一般用于改变控制循环的量。 在为true时执行。,例: void main() int sum=0; for(int i=0;i10;i+) sum=sum+i; ,for(初始化语句;表达式1;表达式2) 语句;,f
17、or(;num!=0;num=num/10) digit=num%10; coutdigit; ,例3.15 以下程序显示ASCH码为30到119的字符: #include #include void main ( ) int i,n=0; for(i=30;i0 ,for(int i=30,n=0; i0 ,34 跳转语句,除了顺序执行和选择、循环控制外,有时需要中断一段程序的执行,跳转到其他地方继续执行,这时需用到跳转语句,包括 break语句 continue语句 goto语句,341 break语句,break语句可以用在switch语句和循环语句中,用来跳出switch语句或提前终止
18、循环,转去执行switch语句或循环语句之后的语句。,int i=0; int sum=0; while(true) cini; if(i=0) break; else sum=sum+i; ,例3.16 以下程序从键盘读入用户输入的数,对其求和;当用户输入数0时,表示输入结束: #include void main() int sum=0,n; while(1) /永远循环 coutn; if(n=0)break; /循环出口 sum+=n; cout 总和: sum endl; ,342 continue语句,continue只用于循环语句。 当程序执行到continue语句时,将跳过其后尚未执行的循环体语句,开始下一次循环。下一次循环是否执行仍然取决于循环条件的判断。,int sum=0; for(int i=0;i100;i+) if(i%5=0) continue; else sum=sum+i; ,例3.17 以下程序对用户输入的所有正数求和#include void main( ) int sum=0,n=1; while(n!=0) coutn; if(n0) continue; sum+=n; cout 总和: sum endl; ,continue语句与br
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理核心要素解析
- 护理服务流程中的患者安全与隐私保护
- 名师解析护理考试易错题
- 护理与医疗教育
- 河北邯郸市2026届高三第一次模拟检测英语试卷(含答案)
- 护理个案:护理应急处理
- 零售业店铺行政人员面试宝典
- 二级建造师执业资格考试模拟试题及答案
- 基于项目的数学学习策略研究
- 零售业门店长招聘的面试技巧
- 张雷声《马克思主义基本原理概论》笔记和课后习题(含考研真题)详解
- 花篮式脚手架专题培训
- 国家职业技术技能标准 4-10-01-01 婴幼儿发展引导员 人社厅发202192号
- 新课标人教版小学二年级语文下册教案 全册
- GB/T 43947-2024低速线控底盘通用技术要求
- 读书课件分享(认知觉醒)
- 剪叉式升降工作平台作业专项施工方案24
- 重庆市巴渝学校2023-2024学年九年级下学期第一次月考物理试卷
- 图书馆图书分类细则
- 市政道路建设项目设计招标文件
- 浅谈三国演义中的智慧型人物诸葛亮
评论
0/150
提交评论