《第3讲流程控制1187904994.ppt》由会员分享,可在线阅读,更多相关《第3讲流程控制1187904994.ppt(24页珍藏版)》请在三一办公上搜索。
1、第三讲流程控制(1),清华大学 郑 莉,教材:C+语言程序设计(第4版)第2章 2.4.12.4.3,目录,3.1 用if语句实现选择结构3.2 多重选择结构嵌套的if结构3.3 多重选择结构switch语句3.4 循环结构while语句3.5 循环结构do-while语句3.6 循环结构for语句3.7 小结,2,#include using namespace std;int main()int year;bool isLeapYear;cout year;isLeapYear=(year%4=0,3,3.1用if语句实现选择结构,例3-1输入一个年份,判断是否闰年(教材例2-2),3.1
2、 用if语句实现选择结构,If语句的语法形式,if(表达式)语句例:if(x y)cout y)cout x;else cout y;if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3 else 语句 n,4,3.1用if语句实现选择结构,3.2 多重选择结构嵌套的if结构,5,3.2 多重选择结构嵌套的if结构,#includeusing namespace std;int main()int x,y;cout x y;if(x!=y)if(x y)cout y endl;elsecout x y endl;elsecout x=y endl;return
3、 0;,例3-2:输入两个整数,比较两个数的大小。(教材例2-3),例3-2(续),6,3.2 多重选择结构嵌套的if结构,运行结果1:Enter x and y:5 8x y,嵌套的if结构(续),语法形式if()if()语句 1 else 语句 2else if()语句 3 else 语句 4注意语句 1、2、3、4 可以是复合语句,每层的 if 与 else 配对,或用 来确定层次关系。,7,3.2 多重选择结构嵌套的if结构,3.3多重选择结构switch语句,例3-3:输入一个06的整数,转换成星期输出。(教材例2-4),8,3.3多重选择结构switch语句,9,3.3多重选择结构
4、switch语句,#include using namespace std;int main()int day;cin day;switch(day)case 0:cout Sunday endl;break;case 1:cout Monday endl;break;case 2:cout Tuesday endl;break;case 3:cout Wednesday endl;break;case 4:cout Thursday endl;break;case 5:cout Friday endl;break;case 6:cout Saturday endl;break;default
5、:coutDay out of range Sunday.Saturday endl;break;return 0;,例3-3(续),10,3.3多重选择结构switch语句,Switch语句的一般形式switch(表达式)case 常量表达式 1:语句1 case 常量表达式 2:语句2 case 常量表达式 n:语句n default:语句n+1,执行顺序以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。,switch语句(续),switch语句(续),case分支可包含多个语句,且不用。表达式、判断值都是int型或char型。若干分支
6、执行内容相同可共用一组语句。,11,3.3多重选择结构switch语句,3.4 循环结构while语句,12,3.4 循环结构while语句,例3-4 求自然数110之和(教材例2-5)分析:本题需要用累加算法,累加过程是一个循环过程,可以用while语句实现。,例3-4(续),13,3.4 循环结构while语句,#include using namespace std;int main()int i=1,sum=0;while(i=10)sum+=i;/相当于sum=sum+i;i+;cout sum=sum endl;return 0;,运行结果:sum=55,while语句(续),14
7、,3.4 循环结构while语句,形式while(表达式)语句,执行顺序 先判断表达式的值,若为 true 时,执行语句。,do-while 语句,15,3.5循环结构do-while语句,#include using namespace std;int main()int n,right_digit,newnum=0;cout n;cout The number in reverse order is;do right_digit=n%10;cout right_digit;n/=10;/相当于n=n/10 while(n!=0);cout endl;return 0;,例3-5:输入一个数
8、,将各位数字翻转后输出(教材例2-6),例3-5(续),16,3.5循环结构do-while语句,运行结果:Enter the number:365The number in reverse order is 563,do-while 语句(续),17,3.5循环结构do-while语句,一般形式do 语句while(表达式),执行顺序先执行循环体语句,后判断条件。表达式为 true 时,继续执行循环体与while语句的比较:while 语句执行顺序 先判断表达式的值,为true时,再执行语句,例3-6用do-while语句编程,求自然数110之和(教材例2-7),#include using
9、 namespace std;int main()int i=1,sum=0;do sum+=i;i+;while(i=10);cout sum=sum endl;return 0;,18,3.5循环结构do-while语句,对比下面的程序,19,3.5循环结构do-while语句,程序1:#include using namespace std;int main()int i,sum=0;cin i;while(i=10)sum+=i;i+;cout sum=sum endl;return 0;,程序2:#include using namespace std;int main()int i
10、,sum=0;cin i;do sum+=i;i+;while(i=10);cout sum=sum endl;return 0;,for语句,例3-6:输入一个整数,求出它的所有因子。(教材例2-8),20,3.6循环结构for语句,例3-6(续),21,3.6循环结构for语句,#include using namespace std;int main()int n;cout n;cout Number n Factors;for(int k=1;k=n;k+)if(n%k=0)cout k;cout endl;return 0;,例3-6(续),22,3.6循环结构for语句,运行结果1:Enter a positive integer:36Number 36 Factors 1 2 3 4 6 9 12 18 36 运行结果2:Enter a positive integer:7Number 7 Factors 1 7,for语句(续),23,3.6循环结构for语句,语法形式for(初始语句;表达式1;表达式2)语句,3.7 小结,主要内容算法的基本控制结构:if语句、switch-case语句、while语句、do-while语句、for语句达到的目标掌握C+语言的基本控制结构,能够编写分支和循环结构的程序段。,24,