已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0,第5章 逻辑表达与流程控制(1),2019年4月17日,本章学习要点,关系运算 逻辑运算 if语句及if语句的嵌套 switch语句,2019年4月17日,5.1 关系运算,x y x = y x != y 关系表达式: 用关系运算符将2个表达式连接起来的式子。 如:x = 1,区分= 和=,2019年4月17日,运用关系表达式,表示比较的数学式 C关系表达式 x10 x10 x10 x = 10,x = 10 x != 10 x = 10,用关系表达式描述条件 判断 x 是否为负数 x 0 判断 x 是否不为零 x != 0,2019年4月17日,5.2 逻辑运算,x=1 关系运算 -1 = x = 1,0 -1 1 x,x = -1 并且 x = -1 & x = 1,2019年4月17日,3种逻辑运算符,逻辑与 & 逻辑或 | 逻辑非 !,X,X & Y,Y,X,Y,X | Y,X,! X,2019年4月17日,逻辑与 & 逻辑或 | 逻辑非 ! (x1)&(y1) (x1)|(y1) (x1) !(x1) 即 x=1,逻辑运算符的含义,2019年4月17日,逻辑运算符的功能,逻辑与 & 逻辑或 | 逻辑非 ! a b a&b a|b !a 假 假 假 假 真 假 真 假 真 真 真 假 假 真 假 真 真 真 真 假,2019年4月17日,逻辑表达式,逻辑表达式:用逻辑运算符将逻辑运算对象连接起来的式子。 (ch = a) & (ch = a & ch = A & ch = Z) 判断ch 是否为英文字母,2019年4月17日,条件的表示,例1 写出满足下列条件的C表达式。 ch 是空格或者回车。 ch = | ch = n number是偶数。 number % 2 = 0 year 是闰年,即 year 能被 4 整除但不能被 100 整除,或 year 能被 400 整除。 (year % 4 = 0 & year % 100 != 0) | (year % 400 = 0),2019年4月17日,5.3 选择控制结构if语句,1 if语句的简单形式,if(表达式)语句,2019年4月17日,例 2 打印出不及格的成绩,2019年4月17日,例3 输入一个整数,输出它的绝对值,分析: 当number = 0时,?,2019年4月17日,#include int main(void) int number; printf(“Enter a number: “); scanf(“%d“, ,运行结果: Enter a number: 10 The absolute value is 10.,运行结果: Enter a number: -300 The absolute value is 300.,2019年4月17日,2. ifelse结构,if(表达式) 语句1 else 语句2,2019年4月17日,解 我们可以使用两种方法编程: 方法一: 用两个简单的if语句实现: main( ) float score; scanf(%f, ,例 4 打印成绩60分为“Pass”, 否则为“Fail”。,2019年4月17日,方法二: 用ifelse语句实现:,main( ) float score; scanf(%f, ,2019年4月17日,条件运算符的使用,当ifelse结构中的语句是表达式语句时, 就可以使用条件运算符实现: if(表达式1) 表达式2; else 表达式3; 用条件运算符表示: 表达式1? 表达式2: 表达式3,2019年4月17日,如下列语句段: x=10; if(x9) y=100; else y=200; 用条件运算符改写程序段: x=10; y=x9? 100: 200;,2019年4月17日,例5 输入x的值, 当x0时调用sqrt(x),否 则调用fabs(x)。,#include #include main( ) float x, y; scanf(%f, ,2019年4月17日,3 多分支结构与嵌套的 if 语句和switch语句,多分支结构有多种形式 实现方法: 嵌套的 if 语句 else if 语句 嵌套的 if - else语句 switch语句,2019年4月17日,(1)嵌套的 if 语句,if (表达式) 语句1 else 语句2,if 语句,if 语句,else if 语句 嵌套的 if - else语句,if (表达式1) 语句1 else if(表达式2) 语句2 else if(表达式n-1)语句n-1 else 语句n,2019年4月17日,嵌套的 if else 语句,if(表达式1) if(表达式2) 语句1 else 语句2 else if(表达式3) 语句3 else 语句4,if (x 1) y = x + 1; else 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;,2种嵌套if语句的比较,2019年4月17日,else 和 if 的匹配,if(表达式1) if(表达式2) 语句1 else 语句2 else if(表达式3) 语句3 else 语句4,if(表达式1) if(表达式2) 语句1 else if(表达式3) 语句3 else 语句4,else 与最靠近它的、没有与别的 else 匹配过的 if 匹配,if(表达式1) if(表达式2) 语句1 else if(表达式3) 语句3 else 语句4,2019年4月17日,练习:分段计算水费,分段计算水费(要求使用嵌套的if-else语句),2019年4月17日,输入一个学生成绩,当成绩90时,打印“Very Good”;当80成绩90时,打印“Good”; 当60成绩80时,打印“Pass”;当成绩60分,打印“Fail”。,例 6 设计下面的程序,2019年4月17日,方法一:else if结构来实现,main( ) float score; scanf(%f, ,2019年4月17日,main( ) float score; scanf(%f, ,方法二: if嵌套结构来实现,2019年4月17日,main( ) float score; scanf(%f, ,分析改写成以下形式:,2019年4月17日,(2)switch语句,处理多分支选择问题,3种情况 1)在switch语句的每个语句段中都使用break语句 switch(表达式) case 常量表达式1:语句段1; break; case 常量表达式2:语句段2 ; break; case 常量表达式n:语句段n ; break; default : 语句段n+1 ; break; ,2019年4月17日,假设自动售货机出售4种商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单,用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号1-4,显示相应商品的价格;输入0,退出查询;输入其他编号,显示价格为0。 1 Select crisps 2 Select popcorn 3 Select chocolate 4 Select cola 0 Exit,例7 查询自动售货机中商品的价格,表达式的值=常量表达式 2 的值,表达式,语句段1,语句段2,语句段n,语句段n+1,表达式的值=常量表达式 1 的值,表达式的值=常量表达式 n 的值,其他,break,break,break,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; ,#include int main(void) int choice, i; double price; for( i = 1; i = 5; i+) printf(“1 Select crisps n“); printf(“2 Select popcorn n“); printf(“3 Select chocolate n“); printf(“4 Select cola n“); printf(“0 exit n“); printf(“Enter choice: “); scanf(“%d“, ,1 Select crisps 2 Select popcorn 3 Select chocolate 4 Select cola 0 Exit Enter choice: 1 price = 3.0 1 Select crisps 2 Select popcorn 3 Select chocolate 4 Select cola 0 Exit Enter choice: 7 price = 0.0 1 Select crisps 2 Select popcorn 3 Select chocolate 4 Select cola 0 Exit Enter choice: 0 Thanks,2019年4月17日,2)在switch中不使用break,switch(表达式) case 常量表达式1:语句段1; case 常量表达式2:语句段2; case 常量表达式n:语句段n; default : 语句段n+1; ,switch (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; ,2019年4月17日,3)在switch的某些语句段中使用break,switch (choice) case 1: price=3.0; break; case 2: price=2.5; case 3: price=4.0; break; case 4: price=3.5; default: price=0.0; ,2019年4月17日,用switch语句输出学生的分数等级。设分数大于等于90分者为A等,70分90分为B等(含70),60分70分为C等(含60),60分以下为D等,分数为浮点数。 编程思路: switch后的表达式必须是有类型而且求出的结果应当是一个个离散的值,而不是一个数值范围。应该想办法把一个范围转换成一个确定的值,这是使用switch语句的关键。 我们可以把分数除以10再取整,即可变成离散的数值,就可以用switch语句解决了。,例8 设计下面程序,#include main() int i; float score; printf(“Input a score:“); scanf(“%f“, ,2019年4月17日,例9:输入两个整数a和b,按从小到大的顺序输出。 算法设计: scanf(“%d%d”,5.3 程序举例,2019年4月17日,#include main( ) int a,b,t; printf(“请输入两个整数:“); scanf(“%d%d“, ,2019年4月17日,例10:输入三个整数a ,b,c,按从小到大的顺序输出。 算法设计: scanf(“%d%d%d”,#include main() int a,b,c,t; printf(“请输入三个整数:“); scanf(“%d%d%d“, ,2019年4月17日,例1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026北京面试题及答案
- 2026必考教资面试题及答案
- 2026编织护士面试题目及答案
- 2026辩证面试题大全及答案
- 2026滨海汽配厂面试题及答案
- 2026病有所医面试题目及答案
- 2026博士求职面试题及答案
- 2026补课助教面试题及答案
- 护理课件:护理法律法规与政策解读
- 宝宝清洁安全须知
- 2026年重庆市中考语文试卷(含答案)
- 2026年抖音内衣-泳衣类目准入考试高频原题+标准答案
- 哈三中2026年高三语文第四次模拟考试作文题目及范文:一棵榕树垂下气根
- (2026年)发展对象考试测试题库(附答案)
- 2026年仓库管理员工作总结汇报
- 2025年华能集团招聘笔试真题附答案
- 2026版糖尿病酮症酸中毒标准化护理流程与临床实践指南课件
- 检验科采血培训
- 交通运输航运公司航运实习生实习报告
- 参郁宁神片-临床药品应用解读
- 智能微电网课件
评论
0/150
提交评论