C语言程序设计教程(第2版)课件第5章.ppt





《C语言程序设计教程(第2版)课件第5章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程(第2版)课件第5章.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 选择结构选择结构本章要点本章要点关系运算符与关系表达式关系运算符与关系表达式逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式条件运算符与条件表达式条件运算符与条件表达式ifif语句语句switchswitch语句语句本章难点本章难点ifif语句的嵌套语句的嵌套switchswitch语句的使用语句的使用 5.1 关系运算符和关系表达式 6 种关系运算符种关系运算符:(小于)(小于)(小于或等于)(小于或等于)(大于)(大于)(大于或等于)(大于或等于)(等于)(等于)!(不等于)(不等于)5.1.1 关系运算符关系运算符优先级相同(高)优先级相同(低)结合性结合性:自左向右:自左向
2、右 关系运算符的优先次序关系运算符的优先次序 与其它运算符优先级的比较与其它运算符优先级的比较:算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符(高)(高)(低)(低)例如:c=da+b等效于:c=(d(a+b)1.什么是关系表达式?什么是关系表达式?5.1.2 关系表达式关系表达式如:(ab)(bc)、ay、s+fd2.关系表达式的值关系表达式的值运算结果运算结果 逻辑值逻辑值 1“真真”,0“假假”如:如:设设 a=3,b=2,c=1 求下面关系表达式求下面关系表达式 的值:的值:cb (a-b)=1 b+ca值为值为值为值为值为值为如果关系运算对象的类型不同,也要先进行类型转
3、换如果关系运算对象的类型不同,也要先进行类型转换。关系表达式的应用。关系表达式的应用。main()char c=k;int i=4,j=2,k=5;float x=3e+5,y=7.56;printf(“%d,%dn”,a+3=k+1);printf(“%d,%dn”,i+j=-3*j,k=j=i+7);printf(“%d,%dn”,xa+b&ab等效于:c=(d(a+b)&(ab)1.什么是逻辑表达式?什么是逻辑表达式?5.2.2 逻辑表达式逻辑表达式用逻辑运算符将逻辑运算对象连结起来的式子用逻辑运算符将逻辑运算对象连结起来的式子。如:(ab)&(bb 2.逻辑表达式的值逻辑表达式的值运算
4、结果运算结果 逻辑值逻辑值(只有假为只有假为0、真为、真为1两种取值两种取值)如:如:53&2|84 b&d值为值为 1值为值为运算对象运算对象 以以数值非数值非0为真、为真、0为假为假注意事项:注意事项:(1)代数式不等式代数式不等式0 x0)&(x5),而不能直接写成而不能直接写成0 x y)z=x;2.双分子语句双分子语句if(表达式表达式)语句语句1 else 语句语句2 执行过程:当表达式的值为“真”(非零)时,执行语句1,否则,执行语句2。如如:if(xy)z=x;else z=y;3.多分子语句多分子语句if(表达式表达式1)语句语句1 else if(表达式表达式2)语句语句2
5、 else if(表达式表达式3)语句语句3 :else if(表达式表达式m)语句语句m else 语句语句n如:if (grade=85)level=A;else if(grade=70)level=B;else if(grade=60)level=C;else level=D;if 语句说明:语句说明:if后面的表达式一般为逻辑表达式或关系表后面的表达式一般为逻辑表达式或关系表 达式,也可以是任意数值类型表达式。达式,也可以是任意数值类型表达式。该语句是合法的:if(3)printf(“ok!”);if 语句中的语句中的“语句语句”为一个简单语句或复合语句。为一个简单语句或复合语句。如:
6、下面程序段是否有错?if (x=0)printf(“X is positive.”);x+;else printf(“X is negative.”);if (x=0)printf(“X is positive.”);x+;else printf(“X is negative.”);4.if 语句的嵌套语句的嵌套 在 if 语句中又包含一个或多个if 语句称为 if 语句的嵌套语句的嵌套。一般形式:if(条件1)if(条件2)语句1 else 语句2else if(条件3)语句3 else 语句4内嵌if内嵌if如:if(x0)if(y0)printf(x0,y0);else printf(“
7、x0,y0)printf(“x0);else printf(“x=0,y6)if(n12)printf(“6n12”);else printf(“n6)if(n12)printf(“6n12”);else printf(“n=6”);缩缩 排排#inclde main()int x;scanf(“%d”,&x);if(x0)printf(“X is positive.”);x=x+1;else printf(“X is negative.”);缩进缩进缩进用用if 语句实现选择结构举例语句实现选择结构举例 -1;x0 main()int x,y;scanf(%d,&x);if(x0)y=-1;
8、else if(x=0)y=0;else y=1;printf(x=%d y=%d,x,y);例例:托运行李计费。用托运行李计费。用f代表收费,代表收费,w代表重量,并将它们定义代表重量,并将它们定义成实型数。则有关系成实型数。则有关系:w*0.205 (0=w=50)f=w*0.313 (50w200)main()float f,m;printf(“input weight:”);scanf(“%f”,&w);if(w200)f=(w-120)*0.413+10*0.23;else if(w50)f=w*0.313;else f=w*0.205;printf(“w=%f,f=%fn,w,f)
9、;5.3.2 条件运算符条件运算符1.条件运算符与条件表达式条件运算符与条件表达式条件表达式的一般形式条件表达式的一般形式:表达式1?表达式2表达式3如:如:max=(ab)?a:b;若若 a=3,b=2,则则 max=?如:(ab)?a:b 目的目的简化 if 语句。if(ab)max=a;else max=b;等效于:条件运算符的优先级:条件运算符的优先级:算数运算符算数运算符=关系运算符关系运算符=逻辑运算符逻辑运算符(除!除!)赋值运算符赋值运算符c&cd?a+b:d 等效于等效于:x=(a+b)c)&(cd)?(a+b):d)条件运算符的结合方向条件运算符的结合方向:自右至左自右至左
10、 如:如:ab?a:cd?c:d等效于:等效于:ab?a:(cd?c:d)2.条件表达式与条件表达式与if语句的比较语句的比较 当当if语句中嵌套的语句是赋值语句,而且语句中嵌套的语句是赋值语句,而且两个分支都给同一个变量赋值时,条件表达式两个分支都给同一个变量赋值时,条件表达式能替代能替代if 语句语句。如下面的写法是错误的:如下面的写法是错误的:a0?printf(“abs(a)=%dn”,a):printf(“abs(a)=%dn”,(-1)*a);此语句的本意是:此语句的本意是:if(a0)printf(“abs(a)=%dn”,a);elseprintf(“abs(a)=%dn”,(
11、-1)*a);可以改写为:可以改写为:printf(“abs(a)=%dn”,a0?a:(-1)*a);例:把输入字符中的小写字符转换成大写并输出例:把输入字符中的小写字符转换成大写并输出。#include main()char ch;scanf(%c,&ch);ch=(ch=a&chb)?a:b;max=(tc)?t:c;printf(max=%dn,max);5.3.3 switch 5.3.3 switch 语句语句一般形式:一般形式:switch(表达式)表达式)case 常量表达式常量表达式1:语句序列:语句序列1 case 常量表达式常量表达式2:语句序列:语句序列2 break;
12、:case 常量表达式常量表达式n:语句序列语句序列n break;default:语句序列语句序列n+1 此处break用于退出switch语句break;执行过程:执行过程:例如:例如:switch(grade)case A:printf(“85100 ”);case B:printf(“7084 ”);case C:printf(“6069 ”);case D:printf(“60 ”);default:printf(“error”);若若grade=A,输出结果是什么?输出结果是什么?85100 7084 6069 60 error 用用break语句处理后的程序段:语句处理后的程序段
13、:switch(grade)case A:printf(“85100”);break;case B :printf(“7084”);break;case C :printf(“6069”);break;case D:printf(“60”);break;default:printf(“error”);若若gread=A,输出结果又是什么?输出结果又是什么?85100完整程序完整程序:main()char grade;printf(“Input grade(A,B,C,D):”);scanf(“%c”,&grade);switch(grade)caseA:printf(“85100”);brea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 课件

限制150内