《第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-2),3.1 用if语句实现选择结构,If语句的语法形式,if (表达式) 语句 例:if (x y) cout y) cout x; else cout y; if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else 语句 n,4,3.1用if语句实现选择结构,3.2 多重选择结构嵌套的if结构,5,3.2 多重选择结构嵌套的if结构,#include using namespace std; int main() int x, y; cout x y; if (x != y) if (x y) cout y“
3、 endl; else cout “x y“ endl; else cout “x = y“ endl; return 0; ,例3-2:输入两个整数,比较两个数的大小。(教材例2-3),例3-2(续),6,3.2 多重选择结构嵌套的if结构,运行结果1: Enter x and y:5 8 x y,嵌套的if结构(续),语法形式 if( ) if( ) 语句 1 else 语句 2 else if( ) 语句 3 else 语句 4 注意 语句 1、2、3、4 可以是复合语句,每层的 if 与 else 配对,或用 来确定层次关系。,7,3.2 多重选择结构嵌套的if结构,3.3多重选择结构
4、switch语句,例3-3: 输入一个06的整数,转换成星期输出。(教材例2-4 ),8,3.3多重选择结构switch语句,9,3.3多重选择结构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; c
5、ase 4: cout “Thursday“ endl; break; case 5: cout “Friday“ endl; break; case 6: cout “Saturday“ endl; break; default: cout“Day 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
6、+1 ,执行顺序 以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。,switch语句(续),switch语句(续),case分支可包含多个语句,且不用 。 表达式、判断值都是int型或char型。 若干分支执行内容相同可共用一组语句。,11,3.3多重选择结构switch语句,3.4 循环结构while语句,12,3.4 循环结构while语句,例3-4 求自然数110之和 (教材例2-5 ) 分析:本题需要用累加算法,累加过程是一个循环过程,可以用while语句实现。,例3-4(续),13,3.4 循环结构while语句,#includ
7、e 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,3.4 循环结构while语句,形式 while (表达式) 语句,执行顺序 先判断表达式的值,若为 true 时,执行语句。,do-while 语句,15,3.5循环结构do-while语句,#include using namespace std; int mai
8、n() 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:输入一个数,将各位数字翻转后输出(教材例2-6),例3-5(续),16,3.5循环结构do-while语句,运行结果: Enter the number: 365 The number in reverse order
9、is 563,do-while 语句(续),17,3.5循环结构do-while语句,一般形式 do 语句 while (表达式),执行顺序 先执行循环体语句,后判断条件。 表达式为 true 时,继续执行循环体 与while语句的比较: while 语句执行顺序 先判断表达式的值,为true时,再执行语句,例3-6用do-while语句编程,求自然数110之和(教材例2-7),#include using namespace std; int main() int i = 1, sum = 0; do sum += i; i+; while (i = 10); cout “sum = “ s
10、um 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, sum = 0; cin i; do sum += i; i+; while (i = 1
11、0); 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: 36 Number 36 Factors 1 2 3 4 6 9 12 18 36 运行结果2: Enter a positive integer: 7 Number 7 Factors 1 7,for语句(续),23,3.6循环结构for语句,语法形式 for (初始语句;表达式1;表达式2) 语句,3.7 小结,主要内容 算法的基本控制结构:if语句、switch-case语句、while语句、do-while语句、for语句 达到的目标 掌握C+语言的基本控制结构,能够编写分支和循环结构的程序段。,24,
链接地址:https://www.31doc.com/p-2497937.html