《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构

上传人:E**** 文档编号:89399445 上传时间:2019-05-24 格式:PPT 页数:38 大小:173.50KB
返回 下载 相关 举报
《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构_第1页
第1页 / 共38页
《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构_第2页
第2页 / 共38页
《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构_第3页
第3页 / 共38页
《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构_第4页
第4页 / 共38页
《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构》由会员分享,可在线阅读,更多相关《《C++程序设计基础》-陆勤-电子教案 第二章 程序控制结构(38页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 程序控制结构,2,3,2.1 if语句,2.1.1 简单if语句 形式一 if(表达式) /* 括号不能少 */ 语句,4,形式二 if (表达式) 语句1 else 语句2,5,例3 从键盘输入一个整数,计算它的绝对值并输出。 #include void main( ) int i,absi; couti; if(i0) absi=i; else absi=-i; cout”The absolute value of ”i” is ”absi”.n”;,运行示例 Enter an integer:-684 The absolute value of 684 is 684.,6,例

2、5 若字符变量ch的当前值是一个英文字母字符,则输出一行文字信息;否则,输出另一行文字信息。这里测试条件就是”ch是一个英文字母字符”。 If(ch=A 测试条件不能写成A=ch=Z|a=ch=z,7,2.1.2 条件表达式与条件表达式语句 一般形式: 表达式1 ?表达式2 :表达式3 例6 使用条件表达式语句实现相同功能。 #include void main( ) int i,absi; couti; absi=i0?i:-i; cout”The absolute value of ”i” is ”absi”.n”; ,8,2.1.3 复合语句 复合语句:一对花括号及其中包含的语句集。 说

3、明语句(可选) 执行语句集 使用说明语句的复合语句称为程序块 程序中凡可使用单一语句的地方,都可使用复合语句 作为特例,函数体也就是一个复合语句,9,2.1.4 扩展if语句与嵌套if语句 一般形式: if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式n) 语句n else 语句n+1,10,例9 从键盘输入一个表示百分制成绩的非负整数,按相应的五级记分制(A、B、C、D、F)转换,并输出结果。对于所输入的数据,需判断其合理性,即应为0100之间的某个整数。 #include void main( ) int score; char grade; cou

4、tscore; cout100) cout”Error-out of range.n”; else,11, if(score=90) grade=A; else if(score=80) grade=B; else if(score=70) grade=C; else if(score=60) grade=D; else / 0=score60 grade=F; cout”grade:”gradeendl; ,运行示例 Enter score(0-100):95 score:95 grade:A,12,if语句允许嵌套 既定解释规则是:else应与离它最近的那个尚未与其他else匹配的if-相

5、匹配。 例 #include main() int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+=1; cout”C:”cendl; ,输出结果 2,13,2.2 switch语句,一般形式: switch (表达式) case 常量表达式1:语句1 break; case 常量表达式2:语句2 break; case 常量表达式n:语句n break; default:语句n+1 可以省略default子句,14,switch (表达式) case 常量表达式1: 语句1或空; case 常量表达式2: 语句2或空; . . . case 常量表达式n:

6、语句n或空; default: 语句n+1或空; ,将表达式值逐个与case后的常量进行比较: 若与其一个相等, 则从该常量下的语句开始向后执行,不再进行判断,直至整个语句结束; 若不与任何一个常量相等, 则执行default 后面的语句。,15,例10 #include void main( ) int score; char grade; coutscore; cout100) cout”Error-out of range.n”; else ,16,switch(score/10) case 10: case 9:grade=A; break; case 8:grade=B; break

7、; case 7:grade=C; break; case 6:grade=D; break; case 5: case 4: case 3: case 2: case 1: case 0:grade=F; break; cout”grade:”gradeendl;,运行示例 Enter score(0-100):95 score:95 grade:A,17,2.3 while语句,while语句的一般形式是: while (表达式) 语句,为确定究竟执行循环体多少次,必须仔细选择所需的初值、终值以及增量,否则,会犯”多一错误”或”丢一错误”。,18,例12 设ch是个字符变量。 ch=A;

8、while(ch=K) coutch; ch=ch+1; coutendl;,输出一行文字信息: ABCDEFGHIJK,19,例14 while(12) cout”NULL OPERATIONn”; while(true) cout”INFINITE LOOP!n”; while(getche( )!=X0D); / 这个循环直到键入回车为止,20,复合语句 do 语句 while (表达式);,单一语句 do 语句 while (表达式);,2.4 do-while语句,21,例16 承例12,可使用do-while语句实现同样功能。 ch=A; do coutch; ch=ch+1; w

9、hile(ch=K); coutendl;,22,while语句是”先判断,后执行”,而do-while语句是”先执行、后判断”,当涉及用while语句相当于空操作语句时,两者形式上的替换就有可能发生问题。 例17 比较下述while语句和do-while语句 while(12) cout2); / 输出一行文字信息 ,23,2.5 for语句 一般形式: for (表达式1;表达式2;表达式3) 语句 注意:三个表达式可以部分地或全部省略,但分号必须保留。 例23 承例12、例16,可使用for语句实现同样功能。 for(ch=A;ch=K;ch=ch+1) coutch; coutendl

10、;,24,例27 使用for语句实现循环控制的两种特殊情形 for(ch=Z;ch=Y;ch=ch-1) cout”DO NOTHINGn”; / 相当于空操作语句 for(;true;) cout”INFINITE LOOP!n”; /无限循环!应避免此类语句编码,25,2.6 用于循环控制的几个特殊运算符,2.6.1 增量运算符与减量运算符,26,增量运算符”+”:自增运算符。 减量运算符”-”: 自减运算符。 都是单目运算符,可出现在操作数前(作为前缀)或后(作为后缀)。 结合规则是从右到左。,27,例28 自增、自减运算符”+”、 ”-”的使用。 #include void main(

11、 ) int i=3,j=5; cout”i=”i”,j=”jendl; cout”i+=”i+”,j-=”j-endl; cout”Now i=”i”,j=”jendl; i=3;j=5; cout”i=”i”,j=”jendl; cout” i=”+i ”,-j=”-jendl; cout”Now i=”i”,j=”jendl;,运行示例 i=3,j=5 i+=3,j-=5 Now i=4,j=4 i=3,j=5 i=4,-j=4 Now i=4,j=4,28,2.6.2 逗号运算符 用于将多个表达式串联在一起,是优先级最低的运算符 是双目运算符,其结合规则从左到右 由逗号运算符与左右两个

12、操作数组成逗号表达式 逗号表达式一般形式: 表达式1,表达式2 功能:先求表达式1的值,再求表达式2的值,并以表达式2的值作为该逗号表达式的结果值。,29,例 计算前N个自然数中所有奇数之和。 sum=0; for (counter=1;counter=N;counter=counter+2) sum=sum+counter; 改写为 for (sum=0,counter=1;counter=N; counter=counter+2) sum=sum+counter; 还可改写为 for (sum=0,counter=1;counter=N; sum=sum+counter,counter=c

13、ounter+2); /for循环体为空语句,30,2.6.3 自反赋值运算符 自反赋值运算符是一个复合运算符。它用于简写赋值表达式。,31,例 可进一步改写for语句 for (sum=0, counter=1; counter=N; counter=counter+2) sum+=counter; 或者 for (sum=0, counter=1; counter=N; counter+, counter+) sum+=counter;,32,运算符的优先级及结合性,高,33,2.8.1 break语句 break一般形式是: break; 功能:用于switch、 while、do-wh

14、ile或for结构中 转换控制流:立即退出该结构,使流程控制 转向执行该结构后的第一条语句。 注意: 不能用于从if语句的选择结构中跳出。 仅能从它自身所在循环体中跳出,即仅实现向”外”跳一层。,2.8 break语句、continue语句和goto语句,34,#include void main( ) int i,j,min,k; do coutij; while(!(i0,例34 求两个正整数i, j的 最大公因子,采用穷举法。,35,2.8.2 continue语句 continue语句的一般形式是 continue; 功能:从当前位置将流程控制转移至本次循环的结束 位置,并继续执行下一

15、次循环。在while和do- while结构中,执行完continue语句后就立即 测试继续循环的条件。在for结构中,执行完 continue语句后即执行增量表达式,然后测试 继续循环的条件。 注意:只用于while、do-while及for这三类循环中。,36,#include #include void main( ) int i=0,n; for(n=101;n=200;n+) if(n%3=0|n%5=0|n%7=0) continue; coutsetw(5)n; if(+i%10=0) coutendl; coutendl;,例39 把101200之间除了能被3或5或7整除的数之外所有数输出,每10个数据输出在一行上。,37,2.8.3 goto语句 一般形式: goto标号名;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号