第四章选择结构程序设计ppt课件_第1页
第四章选择结构程序设计ppt课件_第2页
第四章选择结构程序设计ppt课件_第3页
第四章选择结构程序设计ppt课件_第4页
第四章选择结构程序设计ppt课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 关系运算符和关系表达式 逻辑运算符和逻辑表达式 if 语句 条件运算符? : switch语句第4章 选择构造程序设计程序的三种根本构造程序的三种根本构造构造化程序设计构造化程序设计根本思想:任何程序都可以用三种根本构造表示,限制根本思想:任何程序都可以用三种根本构造表示,限制运用无条件转移语句运用无条件转移语句goto构造化程序:由三种根本构造反复嵌套构成的程序叫构造化程序:由三种根本构造反复嵌套构成的程序叫优点:构造明晰,易读,提高程序设计质量和效率优点:构造明晰,易读,提高程序设计质量和效率三种根本构造三种根本构造顺序构造顺序构造ABAB流程图流程图N-S图图PAB真真假假PBA真真假

2、假v选择构造选择构造A1A2AiAnk=k2k=k1k=knk=ki.l二分支选择构造二分支选择构造l多分支选择构造多分支选择构造v循环构造循环构造l当型循环构造当型循环构造l直到型循环构造直到型循环构造PA假假真真当当P为真为真AAP真真假假A直到直到P为真为真 关系运算和逻辑运算关系运算和逻辑运算关系运算符和关系表达式关系运算符和关系表达式 关系运算符有六个:关系运算符有六个: = = 3 53 、 x+10=20 x+103 & x+103 & x+105 15-c | a+b5关系运算和逻辑运算的结果是逻辑量,即关系运算和逻辑运算的结果是逻辑量,即 “真或真或“假。假。所学运算符优先级

3、:所学运算符优先级:!、算术运算、关系运算、!、算术运算、关系运算、&、| | 、赋值运算、赋值运算选择型程序设计选择型程序设计if语句条件选择语句语句条件选择语句if语句的三种方式语句的三种方式方式一:方式一:格式:格式:if (expression) statement执行过程:执行过程:exprstatement非非0=0例:例:if (xy) printf(“%d,x);exprstatement1statement2非非0=0l方式二:方式二:l格式:格式:if (expression) l statement1l elsel statement2l执行过程:执行过程:例:例:if

4、(xy) max=x; else max=y;l方式三:l格式:if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else statementn expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0u执行过程:执行过程: 例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if

5、 (salary400) index=0.1; else index=0; 如:如:if(a=b&x=y) printf(“a=b,x=y); if(3) printf(“OK); if(a) printf(“%d,a);l阐明:阐明:lifif后面的表达式类型恣意后面的表达式类型恣意u语句可以是复合语句语句可以是复合语句u if(x) if(x!=0)u if(!x) if(x=0)例例 思索下面程序的输出结果思索下面程序的输出结果: #include main() int x,y; scanf(“%d,%d,&x,&y); if(xy) x=y; y=x; else x+; y+; pri

6、ntf(“%d,%dn,x,y);Compile Error!/*ch4_1.c*/#include main() int x,y; printf(Enter an integer:); scanf(%d,&x); y=x; if(yabsolute value:%dn,x,y);例例 求一个数的绝对值求一个数的绝对值运转:Enter an integer:-12 integer:-12-absolute value :12/*ch4_2.c*/#include main() int a,b; printf(Enter integer a:); scanf(%d,&a); printf(Ent

7、er integer b:); scanf(%d,&b); if(a=b) printf(a=bn); else printf(a!=bn);例例 输入两个数并判别两数相等否输入两个数并判别两数相等否运转:Enter integer a:12 Enter integer b:12 a=b 运转:Enter integer a:12 Enter integer b:9 a!=b /*ch4_3.c*/#include main() char c; printf(Enter a character:); c=getchar(); if(c=0&c=A&c=a&c=z) printf(The cha

8、racter is a lower lettern); else printf(The character is other charactern);例例 判别输入字符种类判别输入字符种类运转:Enter a character: The character is a control character运转:Enter a character:8 The character is a digit运转: Enter a character: D The character is a capital letter运转: Enter a character: h The character is a

9、 lower letter运转: Enter a character:F1 The character is other charactervif语句嵌套:语句嵌套:v普通方式:普通方式:if (expr1) if (expr2) statement1 else statement2else if(expr3) statement3 else statement4内嵌内嵌if内嵌内嵌ifif (expr1) if (expr2) statement1 else statement2内嵌内嵌ifif (expr1) if (expr2) statement1else statement3 内嵌内

10、嵌ifif (expr1) statement1else if(expr3) statement3 else statement4内嵌内嵌iflif else 配对原那么:缺省配对原那么:缺省 时,时,else总总是和它上面离它最近的未配对的是和它上面离它最近的未配对的if 配对配对if()if()if()else.else.else.例:例: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);修正:修正: if (a=b) if(b=c) printf(“a=b=c); else printf(“a!=b);实现实现if else 正确配

11、对方法:加正确配对方法:加 例例 思索下面程序输出结果思索下面程序输出结果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d,x); 结果:结果:-1例例 输入两数并判别其大小关系输入两数并判别其大小关系/*ch4_4.c*/#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d,&x,&y); if(x!=y) if(xy) printf(XYn); e

12、lse printf(XYn); else printf(X=Yn);运转:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y 条件运算符的运用条件运算符的运用 当当ifelseifelse构造中的语句是表达式语句时,构造中的语句是表达式语句时, 就可以运用就可以运用条件运算符条件运算符“ ? ? :了,:了,即以下即以下ifelseifelse语句:语句: if ( if (表达式表达式1) 1) 表达式表达式2 2; else else 表达式表达式3 3;用条件运算符写成通用方式即为用条件运算符写成通用方式即为 表达式表达式1 ?

13、 1 ? 表达式表达式2 2 :表达式:表达式3 3如以下语句段:如以下语句段: x=10; if (x9) y=100; else y=200;可以写成:可以写成: x=10; y=x9? 100: 200; 例例 3 打印打印a, b两个数中大者。两个数中大者。 方法一:方法一: 用用ifelse构造实现:构造实现: main( ) int a, b; scanf(%d, %d, &a, &b); if (ab) printf(max=%dn, a); else printf(max=%dn, b); 方法二:方法二: 用条件运算符实现:用条件运算符实现: main( ) main( )

14、int a, b; int a, b; scanf(%d, %d, &a, &b); scanf(%d, %d, &a, &b); printf(max=%dn, ab? printf(max=%dn, ab? a:b); a:b); switch 语语 句句switch语句的方式:语句的方式: switch(表达式表达式) case 常量常量1: 语句段语句段1 case 常量常量2: 语句段语句段2 default: 语句段语句段n switch语句的执行过程: 首先计算表达式的值,然后判别表达式的值与哪个常量表达式的植相等,就转去执行该表达式后面的语句,并继续执行下面的语句.阐明:阐明:

15、 常量表达式常量表达式, ,其值必需互不一样其值必需互不一样 语句标号作用,必需用语句标号作用,必需用breakbreak跳出跳出 case case后可包含多个可执行语句,且不后可包含多个可执行语句,且不用加用加 switch switch可嵌套可嵌套例例 switch(score) switch(score) case 5: printf( case 5: printf(“Very good!Very good!); ); case 4: printf( case 4: printf(“Good!Good!); ); case 3: printf( case 3: printf(“Pass!Pass!); ); case 2: printf( case 2: printf(“Fail!Fail!); ); default : printf( default : printf(“data error!data error!); ); 例 void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论