大学C语言程序设计第二版(电子工业)第4章课件

上传人:我*** 文档编号:145744189 上传时间:2020-09-23 格式:PPT 页数:30 大小:298KB
返回 下载 相关 举报
大学C语言程序设计第二版(电子工业)第4章课件_第1页
第1页 / 共30页
大学C语言程序设计第二版(电子工业)第4章课件_第2页
第2页 / 共30页
大学C语言程序设计第二版(电子工业)第4章课件_第3页
第3页 / 共30页
大学C语言程序设计第二版(电子工业)第4章课件_第4页
第4页 / 共30页
大学C语言程序设计第二版(电子工业)第4章课件_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《大学C语言程序设计第二版(电子工业)第4章课件》由会员分享,可在线阅读,更多相关《大学C语言程序设计第二版(电子工业)第4章课件(30页珍藏版)》请在金锄头文库上搜索。

1、大学C/C+语言程序设计 第4章 选择结构程序设计,第4章 选择结构程序设计,4.1 if语句,4.2 switch 语句,C语言的语句可分为以下四类: 简单语句、空语句、复合语句和流程控制语句。 简单语句又分为:表达式语句和函数调用语句。,x+y%4; z-; x=a/2+fabs( b ); printf(“hello!”); ;,复合语句:用一对花括号 将多条语句组合在一起,在语法上相当于一条语句。,. int x,y; x =exp(3); y=pow(2,4) ; printf(“x=%d,y=%dn”, x,y);.,4.1 if语句(条件选择语句) if语句的三种形式 (1)形式

2、一:单分支 一般格式: if(表达式) 语句;,例if (xy) max=x;,执行过程:,实验教程P18页6题(if 单分支结构),#include stdio.h main( ) int a=8,b=7,c=9,t=0; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%5d%5d%5dn,a,b,c); kj17 ,输出结果: 9 8 7,三个数降序输出,实验教程P18页6题(if 单分支结构),#include stdio.h main( ) int a=8,b=7,c=9,t=0; if(ab) t

3、=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%5d%5d%5dn,a,b,c); kj17a,输出结果: 9 7 0,例:if (xy) max=x; else max=y; printf(“%d”,max);,(2)形式二:双分支 一般格式: if (表达式) 语句1; else 语句2;,执行过程:,#include main() int x,y; printf(Enter an integer:); scanf(%d, kj18,例: 求一个数的绝对值,运行:Enter an integer:-12 -12.abs

4、olute value :12,if(x0) y= -x; else y=x;,如:if(a=b,if后面的表达式类型任意(关键:非0为真),if或else后面的语句可以是复合语句 else 不可以单独使用,例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, kj19,Compile Error!,if后只能管一条语句,说明:,(3)形式三:多分支,一般格式: if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式n) 语句n; else 语句n+1;,执行过程:,实验教程P18页4题(if 多分支结构

5、),#include “stdio.h” main( ) int a=1,b=2,c=3,d=4; if(abc) printf(“%dn”,d); else if(c-b)=a) printf(“%dn”,2*d); else printf(“%dn”,4*d); kj20,例.编程实现:给出一百分制成绩,要求输出成绩等级A、B、C、D。90分以上为A等,8980分为B等,7970分为C等,6960分为D等。假定成绩为实型数据。,#include main() float score; scanf(%f, kj21,例:百分制成绩的等级划分问题之解法1:仅用if单分支语句实现,#includ

6、e main() float score; scanf(f, kj22,解法2:用if多分支语句实现,if语句嵌套:如果if(表达式)或else后面的语句又包含一个或多个if语句,就称为if语句的嵌套。,内嵌的if-else语句,内嵌if-else语句,if语句的两层嵌套结构如下:,if(表达式1) if(表达式1_1) 语句1_1; else 语句1_2;,else if(表达式2_1) 语句2_1; else 语句2_2;,修改1: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”); kj22c,if else 配对原则:缺省 时,

7、else总是和它上面离它最近的未配对的if配对,例:修改程序,使之 满足 1. a,b,c相等时输出 :a=b=c; 2. a!=b时输出a!=b if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,想改变if else默认配对方法: 加 ,例: 计算分段函数。 x + 2 x= x -10 x *2 10 = x 0 x / 2 x 10 kj23,if(x=0) if(x=-10) y=x+2; else y=x-2; else if(x=10) y=x*2; else y=x/2;,if(x=-10) y=x+2; else if

8、(x=0) y=x-2; else if(x=10) y=x*2; else y=x/2;,switch语句,使用if语句嵌套层次太多,容易发生错误,因此在多分支结构中,通常使用switch语句 。,switch语句的一般形式,switch (表达式) case 常量表达式1:语句1; case 常量表达式2:语句2; case 常量表达式n:语句n ; default:语句n+1; ,说明,当表达式的值与某一个case后面的常量相等时,执行该case后面的语句。然后执行下一个case后面的语句。 若所有的case后面的常量都不和表达式的值相匹配,就执行default后面的语句。 每一个cas

9、e的常量表达式必须互不相同,不能表示范围,如x0 。 常量可以是整数或字符。,例 switch(score) case 9: printf(“A”); case 8: printf(“B”); case 7: printf(“C”); case 6: printf(“D”); default : printf(“E”); kj24,运行结果:score为9时,输出: ABCDE,如果score分别为3,2,1呢?,说明: 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加 多个case可共用一组执行语句,如: case A:printf(“score90n”);bre

10、ak; case B: case C: printf(“score60n”); break; .,switch可嵌套,其中的break语句只能退出本层的switch语句体,例 :. int score; scanf(“%d”, . kj24,运行结果:score为95时,输出: A,例:百分制成绩的等级划分之解法3:用switch语句实现,main ( ) int a=1, b=0; switch(a) case 1: switch (b) case 0: printf(*0*); break; case 1: printf(*1*); break; case 2: printf(*2*);

11、break; kj25,运行结果:*0*2*,例(习题9):根据程序写出运行结果?,例: 输入两个整数和一个四则运算符,要求输出计算结果。,#include void main() int num1, num2; char sign; scanf(“d , c,d, kj26,4.3 实 例 解 析,例1:根据程序写出运行结果,答案:2,答案:13,#include main ( ) int x=2,y=-1,z=2; if(xy) if(y0) z=0; else z+=1; printf(“%dn“,z); kj22e,#include main ( ) int i=10; switch(

12、i) case 9:i+=1; case 10:i+=1; case 11:i+=1; default:i+=1; printf(%dn,i); ,例:根据输入的年份和月份,计算该月有多少天?(考虑闰年和平年的情况),#include main() int year,month,day; printf(“input the year and month:”); scanf(“%d,%d”,/输出该月的天数 ,#include #include main() float a,b,c,m,n,x1,x2; scanf(%f%f%f, kj28,输入:a=1,b=3,c=2 输出:x1=-1.00 x2=-2.00,本章小结,本章主要介绍了if语句和switch语句这两中分支语句。 if语句包括了三种类型:单分支if语句、双分支if语句和多分支if语句(即if语句的嵌套),if后可以是范围条件,特别注意在if语句的嵌套中if和else的匹配关系; switch语句主要用于对单条件进行测试,从其多种结果中取一种的情形,要注意在其case分支语句中使用间断语句break语句。在实际运用中,应根据具体的情况灵活使用这两种语句来解决问题。,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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