




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.1 4.1 关系运算符于关系表达式关系运算符于关系表达式 4.2 4.2 逻辑运算符于逻辑表达式逻辑运算符于逻辑表达式 4.4 switch4.4 switch语句语句 返回 4.3 if4.3 if语句语句 4.1 关系运算与关系表达式 关系运算就是比较运算,即将两个数据进行关系运算就是比较运算,即将两个数据进行 比较,判定两个数据是否符合给定的关系。比较,判定两个数据是否符合给定的关系。 a b a = = b a != b 下一页下一页 第4章 选择程序设计 4.1.1 关系运算符(关系运算符( C语言有语言有6种种) 小于关系运算符小于关系运算符 大于大于 = 大于等于大于等于 =
2、 等于等于 != 不等于不等于 六个关系运算符都是六个关系运算符都是 双元运算符。双元运算符。 关系操作数可以是:关系操作数可以是: 数值类型数据数值类型数据 字符型数据字符型数据 关系运算的值 关系成立:关系成立: 1 (表示逻辑表示逻辑真真); 关系不成立:关系不成立: 0 (表示逻辑表示逻辑假假)。 下一页下一页 第4章 选择程序设计 5 3 值:值: 1 5 b + c 比较两个算术表达式的值比较两个算术表达式的值 a = 2 * b 比较变量比较变量 和算术表达式的值和算术表达式的值 a b 比较两个字符的比较两个字符的ASCII码值码值 2. 关系运算符的优先级关系运算符的优先级
3、例如例如 1)、 和和 = 为同一级,为同一级, = 和和 != 为同一级。为同一级。 前者的优先级高于后者。前者的优先级高于后者。 2)关系运算符优先级低于算术运算符。)关系运算符优先级低于算术运算符。 3. 关系运算符的结合律 C语言规定关系表达式采取左结合律。表达式语言规定关系表达式采取左结合律。表达式 中出现优先级别为同一级别的运算符时,则按从中出现优先级别为同一级别的运算符时,则按从 左到右结合方向处理。左到右结合方向处理。 第4章 选择程序设计 a+b b+c 等效于等效于 (a+b)(b+c)。 (2+a)=(b-a) 等效于等效于2+a = b-a。 例如例如 int a=2,
4、b=3,c=1; abb,值是,值是0 , 再计算再计算 033 ,值是,值是1 , 再计算再计算 12,值为,值为 1 例如例如 返回 4.2 逻辑运算符和逻辑表达式 4.2.1 逻辑运算符逻辑运算符 C语言没有逻辑类型数据,逻辑运算根据数据语言没有逻辑类型数据,逻辑运算根据数据 是否为是否为0进行判断:进行判断: 数据为非数据为非0:逻辑真逻辑真, 数据为数据为0: 逻辑假逻辑假; 逻辑运算值的表示:逻辑运算值的表示: 逻辑真逻辑真,值为,值为1, 逻辑假逻辑假,值为,值为0。 下一页下一页 第4章 选择程序设计 1逻辑非 ! 逻辑非是一元运算符。逻辑非是一元运算符。 操作数值为操作数值为
5、0,逻辑非运算的结果为,逻辑非运算的结果为1(逻辑真逻辑真); 当操作数值为非当操作数值为非0时,逻辑非运算的结果为时,逻辑非运算的结果为0。 下一页下一页 第4章 选择程序设计 int a=5,b=3; !a 结果:结果:0 !(a b) 结果:结果:1。因为。因为a b 的值为的值为 0 例如 下一页下一页 第4章 选择程序设计 2逻辑与逻辑与 a 否则,计算:否则,计算:y=2 * x; 需要根据需要根据x的值进行流程选择(分支)。的值进行流程选择(分支)。 下一页下一页 第4章 选择程序设计 4.3.1单分支选择语句 执行单分支语句时,首先先判断表达式的值若为执行单分支语句时,首先先判
6、断表达式的值若为 非非0则执行下面的语句若为则执行下面的语句若为0则跳过该语句。则跳过该语句。 下一页下一页 第4章 选择程序设计 单分支选择语句单分支选择语句if的形式为:的形式为:if (表达式表达式) 语句语句 main() float x , y; scanf(“%f ”, y = 2 * x ; if ( x 0 ) y = 3 - x ; printf(“y= %6.2f”, y ); 例如例如 表达式表达式 语句语句 真真 假假 单分支选择结构单分支选择结构 4.3.2 双分支选择语句 执行过程中首先先判断表达式的值若为非执行过程中首先先判断表达式的值若为非0则执行语则执行语 句
7、句1。若为。若为0则执行语句则执行语句2 下一页下一页 第4章 选择程序设计 双分支选择语句的结构形式:双分支选择语句的结构形式:if( if(表达式表达式) ) 语句语句 1 1 else else 语句语句2 2 表达式表达式 语句语句1 真真 假假 语句语句2 双分支选择结构双分支选择结构 例如例如 main() float x , y; scanf(“%f ”, if ( x b 则输出a ;否则,输出b。 #include main( ) float a, b; scanf(“%f, %f”, if (ab) printf (“%f”, a ); else printf (“%f”,
8、 b ); 下一页下一页 第4章 选择程序设计 例如 4.3.3 多分支选择语句 执行时先判断表达式执行时先判断表达式1的的 值非值非0就执行下面的语句就执行下面的语句 为为0就执行下一个判断一就执行下一个判断一 直这样做下去直到得出最直这样做下去直到得出最 后结果。后结果。 下一页下一页 第4章 选择程序设计 多分支选择结构的语句形式:多分支选择结构的语句形式: if (表达式表达式) 语句语句1 else if (表达式表达式)语句语句2 else 表达式表达式1 真真 语句语句1 假假 表达式表达式2 表达式表达式3 语句语句4语句语句3语句语句2 真真 真真 假假 假假 多分支选择流程
9、多分支选择流程 写一个程序完成下列功能写一个程序完成下列功能: 1 输入一个分数输入一个分数score 2 score60 输出输出 E 3 60=score 70 输出输出 D 4 70=score 80 输出输出 C 5 80=score 90 输出输出 B 6 score = 100 输出输出 A 下一页下一页 第4章 选择程序设计 多分支问题 main( ) int score; scanf(“%d”, if ( score60) printf(“%c” , E); else if ( score 70) printf(“%c” , D); else if (score 80) pri
10、ntf(“%c” , C); else if (score 90) printf(“%c” , B); else printf(“%c” , A); 下一页下一页 第4章 选择程序设计 程序程序 if语句中的表达式一般为关系或逻辑表达式,也语句中的表达式一般为关系或逻辑表达式,也 可以为任何数值类型的表达式。可以为任何数值类型的表达式。 执行语句可以是一条简单语句、空语句或复合语执行语句可以是一条简单语句、空语句或复合语 句,也可以嵌套其它流程控制语句。句,也可以嵌套其它流程控制语句。 复杂条件选择 输入两个字符输入两个字符ch1和和ch2, 如果如果ch1=Z 且且 ch2=B, 则输出则输
11、出“You are right ! “ 下一页下一页 第4章 选择程序设计 问问 题题 main() char ch1,ch2; ch1=getchar( ); /scanf(“%c”, ch2=getchar( ); if ( ch1 = Z 下一页下一页 第4章 选择程序设计 程序 4.3.4 if语句的嵌套 在上述在上述3种种if语句结构中,当语句结构中,当if(表达式)或(表达式)或else后面的语后面的语 句本身又是一个句本身又是一个if语句结构时,就形成了语句结构时,就形成了if语句的嵌套结语句的嵌套结 构。构。 下一页下一页 第4章 选择程序设计 if 语语 句的句的 二层二层
12、嵌套嵌套 结构结构 如右如右: if ( 表达式表达式1) if ( 表达式表达式1_2) 语句语句1_1 else 语句语句1_2 else if ( 表达式表达式2_1) 语句语句2_1 else 语句语句2_2 例题4.3的分段函数可以用两层嵌套来完成: if (x = 0) if (x = -10) /*当当 x = -10 */ y = 2*x; else /*当当 -10 x 0 时走这条分支时走这条分支*/ if (x=10) /*当当 0 x =1 0 */ y = x-2; else /*当当 10 x */ y = x/10; 下一页下一页 第4章 选择程序设计 两层嵌套流
13、程图 x= -10 x= 0 x=10 y=2*x y=x+2 y= x-2y=x/10 非0 0 0 非0 0 非0 下一页下一页 第4章 选择程序设计 if (x = 0) if (x = -10) /*当当 x = -10 */ y = 2*x; else /*当当 -10 x 0 时走这条分支时走这条分支*/ if (x=10) /*当当 0 x =1 0 */ y = x-2; else /*当当 10 =150否否 在在sex不为不为F的分支中判断的分支中判断tall=170否否 void main() int tall; char sex; printf( “input sex
14、and tall :” ); scanf( “%c %d”, if (sex=F) if (tall=150) printf(“ A ”); else printf(“ B ”); else if (tall=170) printf(“ A ”); else printf(“ B ”); 下一页下一页 第4章 选择程序设计 程序程序 v条件语句 在在C语言中,简单的分支选择可以用条语言中,简单的分支选择可以用条 件语句实现。件语句实现。 条件语句的一般形式为:条件语句的一般形式为: ? : 条件运算符条件运算符 ?,?, : 的含义是:的含义是: 表达式表达式1的值为真:计算表达式的值为真:计
15、算表达式2, 表达式表达式1的值为假,计算表达式的值为假,计算表达式3。 被计算的表达式的值作为整个表达式的值。被计算的表达式的值作为整个表达式的值。 下一页下一页 第4章 选择程序设计 用条件语句实现:用条件语句实现: y = x0 ?3- x: 2* x; 此式求值取决于此式求值取决于x的值的值: (1)若)若x 0 为真,则为真,则y =3-x (2)若)若x 10?x/10:x0?x:-x; 从右至左结合,等价于:从右至左结合,等价于: y=x10?x/10:(x0?x:-x); 它的功能是它的功能是:当当x10时,时,y的值为的值为x/10; 当当x0? 第4章 选择程序设计 返回
16、4.4 Switch语句 switch(表达式表达式) case 常量常量1: 语句语句1;break; case 常量常量2: 语句语句2;break; case 常量常量3: 语句语句3;break; default: 语句语句4; 另一种多分支语句,根据表达式不同的值选另一种多分支语句,根据表达式不同的值选 择不同的语句。择不同的语句。 下一页下一页 第4章 选择程序设计 Switch语句语句的一般形式的一般形式 v语句中的表达式可以是数字型或字符型,表达语句中的表达式可以是数字型或字符型,表达 式的值,称为开关值。式的值,称为开关值。 v语句结构中各个语句结构中各个case后常量表达式
17、的值必须互后常量表达式的值必须互 不相同;否则执行时将出现矛盾,即同一个开不相同;否则执行时将出现矛盾,即同一个开 关值,对应多种执行方案。关值,对应多种执行方案。 v当表达式的值与某一个常量相等时,就执行后当表达式的值与某一个常量相等时,就执行后 面的语句;若无面的语句;若无break语句,执行该语句后,流语句,执行该语句后,流 程控制转移到下一个分支程控制转移到下一个分支: 继续执行这一个分支继续执行这一个分支 的语句,一至到最后下个语句执行完。的语句,一至到最后下个语句执行完。 v当表达式的值与所有常量表达式的值不相等时,当表达式的值与所有常量表达式的值不相等时, 执行执行default
18、:后面的语句。后面的语句。 下一页下一页 第4章 选择程序设计 注意注意 switch(i) case 1:printf(An); break; case 2:printf(Bn); break; case 3:printf(Cn); break; case 4 : p r i n t f ( D n ) ; b r e a k ; d e f a u l t : p r i n t f ( E n ) ; 假设假设i=3时,则会从时,则会从i=3 时做起始语句。如果给时做起始语句。如果给 每条语句加上每条语句加上break这这 样就只执行一条语句样就只执行一条语句 C 下一页下一页 第4章
19、选择程序设计 看下面的例子看下面的例子 运行结果运行结果 v语句后加或不加语句后加或不加“breakbreak;”可以使多分支变可以使多分支变 得非常灵活。如果多种情况需要共用一个执行得非常灵活。如果多种情况需要共用一个执行 语句语句, ,可用可用casecase的常量表达式多种情况列出的常量表达式多种情况列出, ,最最 后一种情况后后一种情况后, ,才放执行的语句。才放执行的语句。 vcase后面的语句可以是一条语句,也可以是复后面的语句可以是一条语句,也可以是复 合语句,还可以是花括弧括起来的几条语句,合语句,还可以是花括弧括起来的几条语句, 还可以是空语句。还可以是空语句。 v 有多条语
20、句时会顺序执行完所有语句。有多条语句时会顺序执行完所有语句。 下一页下一页 第4章 选择程序设计 说明说明 编程:根据输入的学生的成绩判断等级。当编程:根据输入的学生的成绩判断等级。当 成绩成绩score 90时为时为 A等等; 成绩成绩70score 90 为为B等等; 成绩成绩60score 70 为为C等等; 成成 绩绩score 60 为为D等等 (score 为整数为整数)。 分析:分析: 设设score为整型数,在为整型数,在score90 的范围的范围 内,内,score可能取可能取100, 99,.,90,利用两个,利用两个 整数相除,结果自动取整的特性,整数相除,结果自动取整
21、的特性,score和和 score /10 有如下对应关系:有如下对应关系: score score/10 90 10, 9 7089 7 , 8 6069 6 60以下以下 default下一页下一页 第4章 选择程序设计 例如例如 因此因此,可以用可以用 score /10的值的值 来确定分支来确定分支 #include main() /*用用switch 语句评级语句评级 */ int score; scanf(%d , switch (score /10) case 10: case 9: printf(%d: An, score);break; case 8:printf(%d: B
22、n, score);break; case 7: printf(%d: Cn, score);break; case 6: printf(%d: Dn, score);break; default: printf(%d: En, score); 第4章 选择程序设计 程序程序 返回 语句标号和语句标号和GOTO语句语句 u1、语句标号、语句标号 不必特意定义,标号可以的任意合法的标示不必特意定义,标号可以的任意合法的标示 符。符。 当在标示符后面加一个冒号,该标示符就构当在标示符后面加一个冒号,该标示符就构 成了一个语句标号。成了一个语句标号。 例如:例如:flag1: stop0: 注意:注
23、意:C语言中,语句标号必须是标示符。语言中,语句标号必须是标示符。 如:如: 10:、:、13: 错误的错误的 u通常,标号用作通常,标号用作goto语句的转向目标。语句的转向目标。 u如:如: Goto stop; uC语言中可以在任意语句前加上语句标号。语言中可以在任意语句前加上语句标号。 u如:如: Stop:printf(“endn”); Goto语句语句 uGoto称为无条件转向语句,称为无条件转向语句, uGoto语句的一般形式:语句的一般形式: goto 语句标号;语句标号; Goto语句的作用:语句的作用: 把程序的执行转向语句标号所在的位置。把程序的执行转向语句标号所在的位置
24、。 注意这个语句标号必须和注意这个语句标号必须和goto语句在同一个语句在同一个 函数内。函数内。 举例:举例: #include main() int a=20,b=30,c=40; goto stop; printf(“a=%d,b=%d,c=%dn”,a,b,c); stop:printf(“End!n”); 例1 写一程序,输入年号,判断是否为闰年。 1. 算法: 根据闰年的判断条件 当年号能被4整除但不能被100整除时,它为闰年。 当年号能被100整除又能被400整除时,它为闰年。 设用变量year表示年号,leap为待置值变量,当year为闰 年:leap1, 否则leap0. 2. 流程图 真 假 真 假 year被4整除 year被100整除 year被400整除 真假 leap=0 leap=1leap=0 真 假leap 输出“闰年”输出“非闰年” leap=1 3. 程序: main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年卫生管理考试个人攻略试题及答案
- 小学语文 试题及答案
- 招录面试试题及答案
- 专利授权的程序及其法理基础试题及答案
- 2024年光电工程师考试大纲概览试题及答案
- 妊高症护理试题及答案
- 文化产业管理考试预测试题及答案
- 腰间盘突出中医护理
- 初级营销师试题及答案
- 2024年劳动节后收心安全培训
- 中小学生心理健康教育主题班会PPT教学课件
- 口腔正畸病例书写模板
- 呼叫中心产业研究报告
- 人民音乐出版社六年级下册音乐教案(全册)
- 药物临床试验概述课件(PPT 23页)
- HP系列圆锥破碎机常见故障
- 安徽中医药大学专升本(语文)科目考试题库(含历年重点题)
- 永磁吸盘使用方法及安全事项
- 企业计算机基础培训课件
- 哈萨克斯坦2050战略总统国情咨文(中文版)
- 复摆鄂式破碎机
评论
0/150
提交评论