版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第4章选择结构程序设计2第四章选择结构程序设计一、关系运算符和关系表达式二、逻辑运算符和逻辑表达式三、使用if语句实现的选择结构四、条件运算符和条件表达式五、switch语句六、选择结构程序举例主要内容3关系运算符<<=>>===!=(6种)第四章选择结构程序设计优先级赋值<关系(后2<前4)<算术关系表达式用关系运算符将两个表达式连接起来的式子.算术、关系、逻辑、赋值、字符。值真(1)假(0)5>3一、关系运算符和关系表达式4219举例已知a=5,b=4,c=3,d=7求下列表达式的值a+b==c*da>b>ca!=b<ca+b==c*d0a>b>c10a!=b<c01算术运算符的优先级高于关系运算符不能用于判断b的值是否在a与c之间“<”运算符的优先级高于“!=”5逻辑运算符!(逻辑非)&&(逻辑与)||(逻辑或)运算规则优先次序赋值<||<&&<关系<算术<!第四章选择结构程序设计(1)!:取逻辑值的相反值。(2)&&:参加运算的两个逻辑值都为真时,结果为真(1)。(3)||:参加运算的两个逻辑值都为假时,结果为假(0)。逻辑表达式用逻辑运算符将关系表达式和逻辑量连接起来的式子。举例已知:(a=1b=0)1a||b&&0!a&&(5>3)||b0双目单目二、逻辑运算符和逻辑表达式6第四章选择结构程序设计二、逻辑运算符和逻辑表达式第五章选择结构程序设计举例5>3&&8<4-!00(5>3)&&(8<(4-!0))4&&5>3||(a=6)1逻辑运算符两侧的运算对象不但可以是0和1,也可以是0或非0的整数,也可是任何类型的数据。系统判定标准:0为假;非0为真。当“与运算”的左侧为0,或者“或运算”的左侧为1时,右侧的表达式不再进行计算。短路现象#include<stdio.h>voidmain(){inta=1,b=1;if(a>1&&(b=5))a=4;printf(“%d,%d”,a,b);}1,17第四章选择结构程序设计三、使用if语句实现的选择结构88案例1y=0x≤01x>0不成立(假)x≤0成立(真)y=1输入x输出yy=0if(表达式){
语句组1}else{
语句组2}x
<=
0y=0;y=1;9案例2x=-xx<0xx≥0不成立(假、0)x<0x=-x成立(真、1)输入x输出xif(表达式){
语句组1}else{
语句组2}x
<
0x=-x;x=x;10案例3y=-1x<01x>00x=0不成立(假)x
<
0成立(真)输入x输出yy=-1x
=
0不成立(假)成立(真)y=0y=1if(表达式){
语句组1}else{
语句组2}x
<
0y=-1;if(x=0)y=0;elsey=1;if(x==0)y=0;elsey=1;11选择结构单分支双分支if(表达式){语句组}多分支if(表达式){语句组1}
else{语句组2}if(表达式1){语句组1}elseif(表达式2){语句组2}……else{语句组n}if语句的嵌套switch语句第四章选择结构程序设计选择结构的分类12编程实现分段函数。练习输入xx<=0是否y=0否0<x<10是y=1/xx==10是否y=2.0/3*x+1x>10是否y=sqrt(5*x-1)0<x&&x<10x<10y=sqrt(5*x-1)if(x<=0)y=0;else
if(x<10)y=1/x;else
if(x==10)y=2.0/3*x+1;else
y=sqrt(5*x-1);输出yy=0x≤01/x0<x<10x>10x+1x=10
13#include<stdio.h>#include<math.h>intmain(){floatx,y;
scanf("%f",&x);
if(x<=0)y=0;
elseif(x<10)y=1/x;
elseif(x==10)y=2.0/3*x+1;
elsey=sqrt(5*x-1);printf("x=%.2f,y=%.2f\n",x,y);return0;}第一次运行:5
x=5.00,y=0.2010
x=10.00,y=7.67第二次运行:程序如下:y=0x≤01/x0<x<10x>10x+1x=10
14编程实现分段函数——换一种判断顺序举例输入xx<10是否y=1/x否x<=0是y=0x==10是否y=2.0/3*x+1y=sqrt(5*x-1)if(x<10)
if(x<=0)y=0;
elsey=1/x;else
if(x==10)y=2.0/3*x+1;
else
y=sqrt(5*x-1);输出yif(x<10)if(x<=0)y=0;elsey=1/x;elseif(x==10)y=2.0/3*x+1;elsey=sqrt(5*x-1);y=0x≤01/x0<x<10x>10x+1x=10
15if语句的嵌套第四章选择结构程序设计if(表达式1)
if(表达式2)语句1
[else语句2][else
if(表达式3)语句3
[else语句4]]注意if与else的配对原则:从else入手,找它上面最近的未配对的if配对。if语句嵌套结构16练习第四章选择结构程序设计已知a=3b=4c=5d=0,d=?if(a>b)
d=a;else
if(c>b)d=c;elsed=b;if(a>b)
if(c>b)d=c;elsed=b;if(a>b)
{if(c>b)d=c;}elsed=b;if(a>b)
if(c>b)d=c;elsed=b;elsed=a;d=5d=3d=0d=417使用if语句中应注意的问题在if关键字之后的括弧内为表达式,该表达式通常是逻辑表达式或关系表达式,但也可以是其它任何合法的C表达式
条件判断表达式必须用括弧括起来,后面没有分号。但在语句之后必须加分号。如果希望在满足/不满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句#include<stdio.h>intmain(){floata,b,c,p,s;scanf(“%f%f%f”,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)
{
p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(“s=%7.2f\n”,s);
}elseprintf(“Notatriangle!\n”);return0;}18条件运算符条件表达式举例if(a>b)max=a;elsemax=b;第四章选择结构程序设计表达式1?表达式2:表达式3max=(a>b)?a:b;条件运算符的使用条件若if语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值,则可以用简单的条件运算符来处理。取值表达式1为真,则取值为表达式2的值;表达式1为假,则取值为表达式3的值。四、条件运算符和条件表达式右结合方向19使用条件表达式求两个数的较大值。(自己看)#include"stdio.h"intmain(){floatnum1,num2,max=0;scanf("%f,%f",&num1,&num2);max=(num1>num2)?num1:num2;printf("%5.2f\n",max);return0;}例4.14第一次运行:3.2,4
4.00第二次运行:4,3.2
4.0020开关语句第四章选择结构程序设计switch(表达式){case常量表达式1:语句组1case常量表达式2:语句组2case常量表达式3:语句组3……case常量表达式n:语句组n
default:语句组n+1}五、switch语句实现多分支break;执行过程定位入口、依次执行、遇break跳出只能是整型或字符型21例4.17#include<stdio.h>intmain(){chargrade;printf(“请输入考试等级A~D:”);scanf(“%c”,&grade);switch(grade){case‘A’:printf(“80~100\n”);case‘B’:printf(“70~79\n”);case‘C’:printf(“60~69\n”);case‘D’:printf(“<60\n”);default:printf(“error\n”);}return0;}B
根据输入的考试成绩等级打印出百分制分数段。A:80~100B:70~79C:60~69D:<60说明:应在每一个printf后加break语句第四章选择结构程序设计70~7960~69<60Error22#include<stdio.h>intmain(){chargrade;printf(“请输入考试等级A~D:”);scanf(“%c”,&grade)switch(grade){case‘A’:printf(“80~100\n”);break;case‘B’:printf(“70~79\n”);break;case‘C’:printf(“60~69\n”);break;case‘D’:printf(“<60\n”);break;default:printf(“error\n”);}return0;}B
70~79最后一行的break可以省略。第四章选择结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度医院医疗废物处理设施建设合同4篇
- 2025年度个人创业贷款合同示范文本8篇
- 二零二五年度美容院美容护肤品生产股份合作合同4篇
- 二零二五版木质家具定制设计与生产加工合同3篇
- 二零二五年度电子商务平台标志设计及用户体验合同3篇
- 二零二五年度托盘租赁与供应链金融结合合同范本3篇
- 二零二五年度昌平区食堂员工激励与绩效考核合同3篇
- 2025年度汽车租赁与品牌合作推广合同范本3篇
- 二零二五年度城市绿化工程承包合同14篇
- 2025年度线上线下联动大型促销活动合作合同3篇
- 项目前期选址分析报告
- 急性肺栓塞抢救流程
- 《统计学-基于Python》 课件全套 第1-11章 数据与Python语言-时间序列分析和预测
- 《形象价值百万》课件
- 红色文化教育国内外研究现状范文十
- 中医基础理论-肝
- 小学外来人员出入校门登记表
- 《土地利用规划学》完整课件
- GB/T 25283-2023矿产资源综合勘查评价规范
- 《汽车衡全自动智能称重系统》设计方案
- 义务教育历史课程标准(2022年版)
评论
0/150
提交评论