版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、0第5 5章 逻辑表达与流程控制1 1 本章学习要点本章学习要点 关系运算逻辑运算if语句及if语句的嵌套switch语句5.1 5.1 关系运算x = 15比较 x 和 15 的大小比较的结果: 真 假当 x 取值9.5时, x = 15的结果是:?当 x 取值21.3时, x = 15的结果是:? 关系运算符x y x y x = y x != y关系表达式:用关系运算符将2个表达式连接起来的式子。如:x = 1区分区分= 和和=运用关系表达式表示比较的数学式 C关系表达式x10 x10 x10 x = 10 x = 10 x != 10 x = 10用关系表达式描绘条件用关系表达式描绘条
2、件判断判断 x 是否为负数是否为负数 x 0判断判断 x 是否不为零是否不为零 x != 05.2 5.2 逻辑运算x=1 关系运算-1 = x = -1 并且并且 x = -1 & x 1&y1 x1|y1 x1!x1 即 x= a & ch = a & ch = A & ch = Z 判断ch 是否为英文字母条件的表示例1 写出满足以下条件的C表达式。ch 是空格或者回车。 ch = | ch = nnumber是偶数。 number % 2 = 0year 是闰年,即 year 能被 4 整除但不能被 100 整除,或 year 能被 400 整除
3、。 year % 4 = 0 & year % 100 != 0 | year % 400 = 0 5.3 选择控制构造选择控制构造if语句语句 1 if语句的简单形式语句的简单形式 if表达式表达式语句语句下一语句真(非0)(a)(b)假(0)表达式语 句语句假真表达式例例 2 打印出不及格的成绩打印出不及格的成绩 例3 输入一个整数,输出它的绝对值分析:分析:当当number = 0时,时,?#include int mainvoid int number; printfEnter a number: ; scanf%d, &number; ifnumber 0 numbe
4、r = -number; printfThe absolute value is %d.n, number; return 0;运行结果:运行结果:Enter a number: 10 The absolute value is 10.运行结果:运行结果:Enter a number: -300 The absolute value is 300.2. ifelse构造构造 if表达式表达式 语句语句1else 语句语句2 下一语句真(a)(b)假表达式语句1语句1假真表达式语句2语句2解解 我们可以使用两种方法编程:我们可以使用两种方法编程: 方法一:方法一: 用两个简单的用两个简单的if语
5、句实现:语句实现: main float score; scanf%f, &score; ifscore=60.0 printfscore=%5.1f-Passn, score; 例例 4 打印成绩打印成绩60分为分为“Pass, 否那否那么为么为“Fail。方法二:方法二: 用用ifelse语句实现:语句实现: main float score; scanf%f, &score; ifscore9 y=100; else y=200; 用条件运算符改写程序段:用条件运算符改写程序段: x=10; y=x9? 100: 200; 例例5 输入输入x的值,的值, 当当x0时调用时
6、调用sqrtx,否否那么调用那么调用fabsx。 #include#include main float x, y; scanf%f, &x; y=x0? sqrtx: fabsx; printfx=%f, y=%fn, x, y; 3 3 多分支构造与嵌套的 if if 语句和switchswitch语句多分支构造有多种形式实现方法:n嵌套的 if 语句 else if 语句嵌套的 if - else语句nswitch语句1 1嵌套的 if if 语句if 表达式 语句1else 语句2 if 语句语句 if 语句语句o else if 语句语句o 嵌套的嵌套的 if - else语
7、句语句i f 表 达 式 1 语句1else if表达式2 语句2else if表达式n-1语句n-1else 语句n假假表 达 式表 达 式1表 达 式表 达 式2语句语句1语句语句2语句语句n-1语句语句n真 表达式表达式n-1假假真真 假假假假真 嵌套的 if else if else 语句if表达式1if 表 达 式 2 语句1else 语句2 elseif 表 达 式 3 语句3 else 语句4 表达式表达式1表达式表达式3语句语句4真真 假假表达式表达式2语句语句3语句语句1语句语句2真真 真真 假假假假2 2种嵌套if if语句的比较if x 1 y = x + 1; else
8、 if x 2 y = x + 2;else y = x + 3; if x 2 if x 1 y = x + 1; else y = x + 2;else y = x + 3; x2 x1y=x+1y=x+2真真 假假真真 y=x+3假假假假 x1 x=90 printfVery Goodn; else if score=80 printfGoodn; else ifscore=60 printfPassn; else printfFailn; main float score; scanf%f, &score; ifscore = 80 ifscore=90 printfVery
9、Goodn; else printfGoodn; else ifscore=60 printfPassn; else printfFailn; 方法二:方法二: if嵌套构造来实现嵌套构造来实现 main float score; scanf%f, &score; if score=60 printfPassn; else ifscore=80 printfGoodn; else printfVery Goodn; 分析改写成以下形式:分析改写成以下形式:2 2switchswitch语句 处理多分支选择问题,3种情况1在switch语句的每个语句段中都使用break语句switch表
10、达式 case 常量表达式1:语句段1; break; case 常量表达式2:语句段2 ; break; . case 常量表达式n:语句段n ; break; default : 语句段n+1 ; break; 例7 7 查询自动售货机中商品的价格 假设自动售货机出售4种商品,薯片crisps、爆米花popcorn、巧克力chocolate和可乐cola,售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单,用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号1-4,显示相应商品的价格;输入0,退出查询;输入其他编号,
11、显示价格为0。1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 Exit表达式的值表达式的值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式的值表达式的值=常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达式常量表达式 n 的值的值其他其他breakbreakbreakbreakswitch choice case 1: price=3.0; break; case 2: price=2.5; break; case 3: price
12、=4.0; break; case 4: price=3.5; break; default: price=0.0; break;#include int mainvoid int choice, i; double price; for i = 1; i = 5; i+ printf1 Select crisps n; printf2 Select popcorn n; printf3 Select chocolate n; printf4 Select cola n; printf0 exit n; printfEnter choice: ; scanf%d, &choice; i
13、fchoice = 0 break; switch choice case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break; printfprice = %0.1fn, price; printfThanks n; 1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 1price
14、= 3.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 7price = 0.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 0Thanks 2在switch中不使用breakswitch表达式 case 常量表达式1:语句段1; case 常量表达式2:语句段2; . case 常量表达式n:语句段n; default : 语句段n+1; switch
15、 choice case 1: price=3.0; case 2: price=2.5; case 3: price=4.0; case 4: price=3.5; default: price=0.0; 表达式的值表达式的值=常量表达式常量表达式 2 的值的值表达表达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式表达式的值的值= =常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达式常量表达式 n 的值的值其他其他3 3在switchswitch的某些语句段中使用breakbreakswitch choice case 1: price=3.0; br
16、eak; case 2: price=2.5; case 3: price=4.0; break; case 4: price=3.5; default: price=0.0; 用switch语句输出学生的分数等级。设分数大于等于90分者为A等,70分90分为B等含70,60分70分为C等含60,60分以下为D等,分数为浮点数。 编程思路: switch后的表达式必须是有类型而且求出的结果应当是一个个离散的值,而不是一个数值范围。应该想方法把一个范围转换成一个确定的值,这是使用switch语句的关键。 我们可以把分数除以10再取整,即可变成离散的数值,就可以用switch语句解决了。例例8 设
17、计下面程序设计下面程序 #include main int i; float score; printfInput a score:; scanf%f,&score; i=score/10; switchi case 10: case 9: printfA; break; case 8: case 7:printfB;break; case 6:printfC;break; default:printfD; return 0; 例9:输入两个整数a和b,按从小到大的顺序输出。算法设计: scanf“%d%d,&a,&b; 假如ab,那么a和b交换值; printf“%d
18、%d, a, b; 5.3 程序举例程序举例 #includemainmain int a,b,t; printf请输入两个整数:请输入两个整数:; scanf%d%d,&a,&b; ifab t=a; a=b; b=t; printf%d %d,a,b; 例10:输入三个整数a ,b,c,按从小到大的顺序输出。算法设计: scanf“%d%d%d,&a,&b,&c; 假如ab,那么a和b交换值; 假如ac,那么a和c交换值; 假如bc,那么b和c交换值; printf“%d%d%d, a, b,c;#includemain int a,b,c,t; printf请输入三个整数:请输入三个整数:; scanf%d%d%d,&a,&b,&c; ifab t=a; a=b; b=t; ifac t=a; a=c; c=t; ifbc t=b; b=c; c=t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SXZX 012-2024绿色铸造专业镇评价通则
- T/DYZYXH 001-2024医养结合机构等级评定规范
- T/CI 1238-2025核电厂阀门阀杆密封组件检维修技术导则
- T/AIITRE 21011-2025能源企业数据开发能力建设与管理要求
- T/CNIDA 020-2024核电工程爆破振动监测技术规程
- 2025~2026学年河南濮阳市范县度人教版第一册一年级数学阶段学情自测卷【附答案】
- 2025~2026学年安徽滁州市天长市苏教版三年级下册期末数学试卷【附答案】
- 2025-2026学年江苏省宜兴市初中历史七年级期末下册自测经典测试题(附答案)
- PHP架构师面试题及详细答案(企业真实版)
- Photoshop操作基础试题及详细答案
- 2024年10月 财务管理学(00067)自考真题
- 自考13174概率论与数理统计(工)高频考点重点
- 2026全国广播电视播音员主持人资格考试(综合知识)历年参考题库含答案详解
- 2026 年冬季取暖防一氧化碳中毒课件
- 第7课《培养德智体美劳全面发展的社会主义建设者和接班人》课件
- 变电站舞动灾害应急演练脚本
- 2026年辅警考试时事政治练习题附答案
- 2025四川成都兴城投资集团有限公司招聘11人笔试历年典型考点题库附带答案详解
- 2026年中级注册安全工程师《建筑施工安全》押题宝典题库附答案详解AB卷
- 2025年股份制银行审计人员招聘考试真题(含答案)
- 汽车救援人员培训及考核规范
评论
0/150
提交评论