《《主要内容安排》ppt课件》由会员分享,可在线阅读,更多相关《《主要内容安排》ppt课件(43页珍藏版)》请在金锄头文库上搜索。
1、主要内容安排,第一章:C+入门 第二章:基本数据类型与输入输出 第三章:表达式与语句 第四章:过程化语句 第五章:函数 第六章:程序结构 第七章:数组,第四章 过程化语句,4.1 while语句 4.2 dowhile语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2 小结,引言,语句按功能分类: 1.操作运算语句:描述计算机执行的操作运算。 2.流程控制语句(称过程化语句):控制上述操作运算的执行顺序。,4.1 while语句,组成:循环变量初始化,继续条件,循环体,改变循环变量的值。 格式:while(条件表达式) 循环体 执行过程
2、:首先判断一个条件表达式,以便决定是否应当进入和执行循环体,当满足该条件时进入循环,不满足该条件时则不再执行循环。 流程图:P54,4.1 while语句(续1),说明: (1)初始化:对循环控制变量,在开始循环前给循环控制变量赋初值。 (2)继续条件:决定循环继续多久,包括循环控制变量。 (3)循环体:包括在执行循环时将要做的操作。,4.1 while语句(续2),注意: (1)循环体:块语句用花括号括起来,简单语句以分号;结束。 (2)循环体:有使循环趋向结束的语句,否则为死循环(永不终止)。 (3)while循环:有可能一次也不执行循环体。,4.1 while语句(续3),例:求1+2+
3、3+100的值。 /ch4-1 #include void main( ) int i=1,sum=0; while(i=100)sum=sum+i; i=i+1; cout“sum=”sumendl; ,第四章 过程化语句,4.1 while语句 4.2 dowhile语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2 小结,4.2 dowhile语句,组成: 同while语句 格式:do 循环体 while(条件表达式); 执行过程:当流程到达do后,立即执行循环体语句,然后再对条件表达式进行测试。若条件表达式的值为真(非0),则重
4、复循环,否则退出。 流程图:P56,4.2 dowhile语句(续1),说明:(1)(2)(3)同while语句 注意: (1)(2)同while语句 (3)dowhile循环中,while(条件表达式) ; / ;不能遗忘 (4)dowhile循环:至少执行一次循环体。 (5)与while语句关系:互相转化,4.2 dowhile语句(续2),例1:从键盘中得到一个范围为1-10的数。 /ch4-2 #include void main( ) int val; docoutval; if(val10) cout10); cout”you entered a”valendl; ,4.2 dow
5、hile语句(续3),例2:求1+2+3+100的值。 /ch4-3 #include void main( ) int i=1,sum=0; do sum=sum+i; i=i+1; while(i=100); cout“sum=”sumendl; ,第四章 过程化语句,4.1 while语句 4.2 dowhile语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2 小结,4.3 for语句,格式:for(表达式1;表达式2;表达式3)循环体 执行过程: (1)先求解表达式1; (2)再求解表达式2,若为0(假),则结束循环,转到(5
6、); (3)若表达式2为非0(真),执行循环体,然后求解表达式3; (4)转回(2) ; (5)执行for语句下面的一个语句。,4.3 for语句(续1),流程图:P58 适用范围:循环次数确定/不确定 循环次数:(终值-初值)/步长+1 例:求1+2+3+100的值。 for(i=1;i=100;i+)sum+=i;,4.3 for语句(续2),相当于while: 表达式1; while(表达式2) 循环体; 表达式3; 灵活性: (1)表达式1省略:在for语句之前给循环变量赋初值,但分号不能省略。 i=1; for(;i=100;i+)sum+=i;,4.3 for语句(续3),灵活性:
7、(续1) (2)表达式2省略:要在循环体中有跳出循环的控制语句。 for(i=1;i+) sum+=i; if(i=100)break; for(i=1;1;i+) sum+=i; if(i=100)break;,4.3 for语句(续4),灵活性:(续2) (3)表达式3省略:应另外设法让循环变量递进变化,以保证循环能正常结束。 for(i=1; i=100;) sum+=i+; (4)表达式1、3可同时省略: i=1; for( ;i=100; ) sum+=i+;,4.3 for语句(续5),灵活性:(续3) (5)表达式1、2、3都省略: i=1; for( ; ) sum+=i+;
8、if(i=100)break; (6)表达式1、2、3都可以为任何表达式:(逗号表达式) for(sum=0,i=1; i=100; i+) sum+=i; for(i=1; sum+=i+,i=100; ); for(i=1; i=100; sum+=i+ );,4.3 for语句(续6),灵活性:(续4) (7)表达式1可以是循环变量定义: for(int i=1; i=100; i+ ) sum+=i; /i只在循环体中有效,循环退出后自动消失,第四章 过程化语句,4.1 while语句 4.2 dowhile语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6
9、过程应用1 4.7 过程应用2 小结,4.4 switch语句,功能:实现多分支选择结构。 格式: switch(表达式) case 常量表达式1:语句组1 case 常量表达式2:语句组2 case 常量表达式n:语句组n default:语句组n+1 /可选项 ,4.4 switch语句(续1),例: 根据考试成绩的等级输出百分制分数段。 char grade;/ swith(grade) caseA: cout”85-100n”; caseB: cout”70-84n”; caseC: cout”60-69n”; caseD: cout”60n”; default: cout”error
10、n”; ,4.4 switch语句(续2),执行过程: 当表达式的值与某一个case后面的常量表达式值相等时,就执行此case后面的语句,若所有case中的常量表达式值都没有与表达式值匹配,就执行default后面的语句。(不能实现多选一) 说明: (1)switch后面括号中的表达式只能是整型、字符型或枚举型表达式(不能是实型)。case后面的常量表达式之类型必须与其匹配。,4.4 switch语句(续3),说明:(续1) (2)case语句起标号的作用。标号不能重名,所以每一个case常量表达式的值必须互不相同,否则就会出现编译错误。 (3)case与default并不改变控制流程。cas
11、e通常与break语句联用,以保证多路分支的正确实现(实现多选一)。 (4)各个case的出现次序可以任意。,4.4 switch语句(续4),说明:(续2) (5)多个case可以共用一组执行语句。 / case 1: case 2: case 3: cout“hello”; (6)default语句是可选的。 (7)用if语句与switch语句可以互相补充。(ifelse语句的执行体等价于switch语句的case中含有break的语句组),4.4 switch语句(续5),例: 根据考试成绩的等级输出百分制分数段。 char grade;/ swith(grade) caseA: cou
12、t”85-100n”;break; caseB: cout”70-84n”; break; caseC: cout”60-69n”; break; caseD: cout”60n”; break; default: cout”errorn”; ,第四章 过程化语句,4.1 while语句 4.2 dowhile语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2 小结,4.5 转向语句,主要内容: 一、break语句 二、continue语句 三、goto语句,4.5 转向语句,一、break语句 引言: break语句不能单独使用,只能
13、用在while,dowhile,for和switch语句中。 功能: (1)在switch语句中:break用来使流程跳出switch语句,继续执行switch后的语句。 (2)在循环语句中:break用来从最近的封闭循环体内跳出。,4.5 转向语句(续1),一、break语句(续) 格式: break; 例: for( ; ; ) for( ; ; ) / if(i=1)break; / a=1; / ,4.5 转向语句(续2),二、continue语句 引言: continue语句不能单独使用,只能用在循环语句中。 功能: 结束本次(轮)循环,即跳过循环体中尚未执行的语句,接着进行下一次(
14、轮)是否执行循环的判定。,4.5 转向语句(续3),二、continue语句(续1) 例:输出100-200之间不能被3整除的数。 for(int n=100;n=200;n+) /方法一 if(n%3=0)continue; coutnendl; / for(int n=100;n=200;n+) /方法二 if(n%3!=0) coutnendl; / ,4.5 转向语句(续4),二、continue语句(续2) continue语句和break语句的区别是: (1)continue语句:只结束本次循环,而不是终止整个循环的执行。 (2)break语句:结束整个循环,不再进行条件判断。 流
15、程图: P65 图4-4,4.5 转向语句(续5),三、goto语句 引言: goto语句是无条件转移语句。(不要多用) 功能: 将控制从它所在的地方转移到标识符所标识的语句处。缺点:非结构化语句,使程序流程无规则,可读性差。 优点:当要从多重循环深处直接跳转到循环之外时,用goto好。如果用break语句,将要用多次。,4.5 转向语句(续6),三、goto语句(续) 例:求1加到100的和。 int i=1;sum=0; loop: sum+=i+; if(i=100) goto loop; cout”sum is”sumendl;,第四章 过程化语句,4.1 while语句 4.2 do
16、while语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2 小结,4.6 过程应用1:求,用公式“/41-1/3+1/5-1/7+”,求的近似值,直到最后一项的绝对值不大于10-8为止。,第四章 过程化语句,4.1 while语句 4.2 dowhile语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2 小结,4.7 过程应用2:判明素数,给定一个整数m,判断其是否为素数。,第四章 过程化语句,4.1 while语句 4.2 dowhile语句 4.3 for语句 4.4 switch语句 4.5 转向语句 4.6 过程应用1 4.7 过程应用2 小结,小结,循