《选择结构修改》PPT课件.ppt_第1页
《选择结构修改》PPT课件.ppt_第2页
《选择结构修改》PPT课件.ppt_第3页
《选择结构修改》PPT课件.ppt_第4页
《选择结构修改》PPT课件.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第五章 选择结构程序设计,主讲教师:王美华(信息学院计算机系),提 纲,关系运算 逻辑运算 if语句 if语句的嵌套 条件运算 swith语句,关系运算,C语言在作关系运算时,用1表示结果为真,0表示结果为假 优先级:、=优先级高于=、!=,逻辑运算,C语言在作逻辑运算时,把非0当作真,0当作假,但还是 用1表示结果为真,0表示结果为假 优先级: !(非)关系运算符&(与)|(或)赋值运算符,关系与逻辑混合运算,例如:已知3条边a,b,c,判断它们是否构成三角形。 条件是任何两边之和大于第三边。 我们可以写出如下表达式: a+bc&a+cb&b+ca 为了易读我们一般写成 (a+bc)&(a+cb)&(b+ca),短路原则,短路原则:并不是所有的逻辑运算符都会被执行,只是 在必须执行下一个逻辑运算才能求出表达式的值时,才 执行该运算符。 (m=ab) & (n=cd) 当a=1, b=2,c=3,d=4,m和n的原值为1时,运行 上式后,m,n值为多少?,条件运算,表达式1?表达式2 :表达式3,运算符,如:max = (ab) ? a : b ;,条件运算,例5.4 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 main() char ch; scanf(“%c“, ,if语句,形式一: 格式:if (表达式) 语句1 else 语句2,例: if (xy) 打印x为最大值; else 打印y为最大值;,例子1,main() char ch; printf(“输入一个字符:“); scanf(“%c“, ,题目:输入一个字符,判断其是否为大写字母,如果是大写字母,输出“大写字母”,否则输出“小写字母或其它”,例子2,有两个数分别存放在变量x、y中,现要求将大的数值 赋给变量max,小的数值赋给变量min。,例子2,例: if (xy) max=x; min=y; else max=y; min=x; ,正确代码:,复合语句,在函数中(如main函数),由“ ”符号括起来的若干 条语句,形成一个复合语句。其功能即为组成复合语 句的句子的功能总程,在逻辑上看成一个整体。,if语句,形式二: 格式:if (表达式) 语句;,例:if (xy) 打印 x 的值;,例:if (xy) 打印x的值; 打印y的值; ,例子,main() int a,b,t; printf(“输入a、b的值:“); scanf(“%d%d“, ,题目:输入两个整数a、b,保证大的整数存放在变量a中,小的数存放在变量b中。,if语句,形式三: 格式:,if ( 表达式1 ) 语句1 else if (表达式2 ) 语句2 else if (表达式3 ) 语句3 . else 语句n+1,例子3,现给定某人的工资,请编程确定他应付的个人所得税 的税率。税率按如下公式计算: 0.4 salary=50000 0.3 salary=10000 index= 0.2 salary=3000 0.1 salary=1600 0 salary1600,例子3,例: if (salary=50000) index=0.4; else if (salary=10000) index=0.3; else if (salary=3000) index=0.2; else if (salary=1600) index=0.1; else index=0;,例子4,现在需要对某学生的100米短跑成绩进行评判,是否合格,标准如下: 男生 小于等于15秒 女生 小于等于18秒,例子4,代码:,if (sex= =m) if (score=15) printf(“合格n”); else printf(“不合格n”); else if (score=18) printf(“合格n”); else printf(“不合格n”); ,试试看(a=5,b=4),if (a3) if (b2) 打印A; else 打印B; else if(b2) 打印C; else 打印D;,if (a2) 打印A; else 打印B;,if (a2) 打印A; else 打印B;,if (a2) 打印B; else 打印C;,输出:(无),输出:B,输出:B,输出:A,if语句else的配对原则,else向上查找,跨过复合语句,与最先找到的,还没有配对的if配对。,if (a5) if(b6) if (c7) printf(“c7n”); else printf(“b=6”);,复合语句,让代码更清晰,if (语句1) if (表达式2) 语句1 else 语句2,if (表达式1) if (表达式2) 语句1 else 语句3,if (表达式1) if (表达式2) 语句1 else 语句2 ,if (表达式1) if (表达式2) 语句1 else 语句3,让代码更清晰,if (表达式1) if (表达式2) 语句1 else 语句2 else if(表达式3) 语句3 else 语句4,if (表达式1) 语句1 else if(表达式3) 语句3 else 语句4,if (表达式1) 语句1 else if(表达式3) 语句3 else 语句4 ,if (表达式1) if (表达式2) 语句1 else 语句2 else if(表达式3) 语句3 else 语句4 ,条件分支(例子),要求根据考试成绩的等级打印出百分制分数段, 如下:A 90 100分 B 80 89分 C 60 79分 D 60分 其它字符 出错,条件分支(例子),switch(grade) case A: printf(“90100分n”);break; case B: printf(“8089分n”);break; case C: printf(“6079分n”);break; case E: printf(“60分n”);break; default: printf(“出错n”);break; ,语句的执行过程:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句,除非遇到break。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。,条件分支(switchcase),switch ( 表达式) case E1: 语句组 1; case E2: 语句组 2; . case En: 语句组 n; break; default: 语句组 ; ,E1,E2,En是常量表达式(整型、字符型),不能含有变量, case语句只起标号作用,必须与break语句配合使用 case后可包含多个可执行语句,且不必加 switch可嵌套 多个case可共用一组执行语句,条件分支(switch的例子),main() int x; char y; printf(“nx:“); scanf(“%d“, switch(x/10) case 0: case 1: case 2:,例:输入一个百分制成绩x,输出对应的等级y。,case 3: case 4: case 5: y=D; break; case 6: case 7: y=C; break; case 8: y=B; break; case 9: case 10: y=A; break; default: y= ; ,例题讲解(1),main() int a= -1, b=1, c=5; switch (a0) case 1:switch (b-20) case 1: printf(“ ,参看习题 写出运行结果,可选答案 A)& B)# C) D)& E)# F)%,例题讲解(2),main() float a,b,c; char op; printf(“ninput:“); scanf(“%f%c%f“, (1) ); switch (op) case +: (2) case -: (3) _ case *: (4) _ case /: (5) _,输入a+(-、/、*)b,计算结果,请在空处填上适当的代码,default: printf(“error“); _(6)_ printf(“Result=(7)_“, c); ,例题讲解(2),main() float a,b,c; char op; printf(“ninput:“); scanf(“%f%c%f“, ,请在空处填上适当的代码,default: printf(“error“); return 0; printf(“Result=%.2f“, c); ,例题讲解(3),#include “stdio.h“ #include “math.h“ main() int a,b,m1,m2; printf(“na,b=“); scanf

温馨提示

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

评论

0/150

提交评论