




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 分支结构程序设计 由关系运算符、圆括号把两个表达式连接起由关系运算符、圆括号把两个表达式连接起来的式子。来的式子。 若所表示的条件成立、则其值为若所表示的条件成立、则其值为1(非(非0)、)、否则其值为否则其值为0。、例:例: a=2 、39 、a != ( a=8 ) 、 x+(y=3)=k*z 、(a!=3)(kbcd 应表示为应表示为 不能顺手也写为不能顺手也写为 abcd 关系运算符都是双目运算符,其结合性均关系运算符都是双目运算符,其结合性均为为。 在六个关系运算符中,在六个关系运算符中,。由逻辑运算符、圆括号把表达式连接起来的式子由逻辑运算符、圆括号把表达式连接起来的式子若
2、所表示的条件成立、其值为若所表示的条件成立、其值为1(非非0)、否则其值为、否则其值为0& (与)(与) 、| (或)、!(非)(或)、!(非)和和均为均为,具有,具有。 为为,具有,具有。逻辑运算符和其它运算符优先级的关系可表示如下:逻辑运算符和其它运算符优先级的关系可表示如下: 按照运算符的优先顺序可以得出:按照运算符的优先顺序可以得出: ab & cd 等价于等价于 (ab)&(cd) !b=c|da 等价于等价于 (!b)=c)|(dc&x+yc)&(x+y)3 a=8 23 0 2、x+y a 2 3、x+(y=3)=k*z !a 0+3=-1
3、 !a 0|0 4、(x!=7) a 0!=7|971|97 5、 ( x+y3 a=8 ) !(231)!(01)!016、 ( k*q ) !(-1)7、!x !(1) !(0) 1作第一个,知道结果,后面不作,如:作第一个,知道结果,后面不作,如: & &1、执行、执行 int a,b,c; a=b=c=0; + +a|+ +b&+ +c; 后后a、b、c值分别为值分别为1、0、02、执行、执行 int a=5,b=6,x=1,y=2; (a=xy)&(b= xy); 后后a、b值分别为值分别为0、63、执行、执行 int a,b,c;a=b=c= - 1
4、; + +a & + +b | + +c; 后后a、b、c值分别为值分别为0、-1、0 例例1:main()char c=k; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf(%d,%dn,!x*!y,!x); printf(%d,%dn,x|i&j-3,ij&xy); printf(%d,%dn,i=5&c&(j=8),x+y|i+j+k); 1、第一种形式为基本形式、第一种形式为基本形式: if if(表达式表达式) 语句语句 语义:如果表达式的值为真,则执行其后的语句,语义:如果表达式的值为真,则执行其后的
5、语句,否则不执行该语句。其过程可表示为下图。否则不执行该语句。其过程可表示为下图。 表 达 式 可表 达 式 可以 是 任 意以 是 任 意合 法 表 达合 法 表 达式 , 后 面式 , 后 面不能加;不能加;例例2:void main() int a,b,max; printf(n input two numbers: ); scanf(%d %d,&a,&b); max=a; if (maxb) max=b; printf(max=%d,max); 例例3:void main() int a,b,c,t; printf(n input two numbers: ); sc
6、anf(%d %d %d ,&a,&b,&c); if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (bb) printf(max=%dn,a); else printf(max=%dn,b); 3、第三种形式为、第三种形式为if-else-if形式:形式:语义:语义: 依次判断表达式的依次判断表达式的值,当出现某个值为值,当出现某个值为真时,则执行其对应真时,则执行其对应的语句。然后跳到整的语句。然后跳到整个个if语句之外继续执行语句之外继续执行程序。程序。 如果所有的表如果所有的表达式均为假,则执行达式均为假,则执行语句语句n
7、。然后继续执行。然后继续执行后续程序。后续程序。后面不能后面不能加;加;上面的语句为以下三种格式:上面的语句为以下三种格式:1、空语句、空语句2、一个语句(不引起转移)、一个语句(不引起转移)3、前后加大括号的语句(复合语句),也、前后加大括号的语句(复合语句),也叫程序段,如:叫程序段,如:int a; float b; a=3; b=7.0; 不能写成不能写成 #includestdio.h#includestdio.h void main() void main() char c; char c; c=getchar(); c=getchar(); if(c32) if(c=0&
8、c=0&c=A&c=A&c=a&c=a&cb) a+;b+; else a=0;b=10; if(ab) a+;b+;; else a=0;b=10;;不能写成不能写成 在条件语句中,只执行单个的赋值语句时,可使用在条件语句中,只执行单个的赋值语句时,可使用条件表达式来实现。条件表达式来实现。 条件运算符为条件运算符为和和,它是一个,它是一个,即有,即有三个参与运算的量。三个参与运算的量。条件表达式的一般形式为:条件表达式的一般形式为: 如果表达式如果表达式1的值为真,则以表达式的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式的值作为条件表达
9、式的值,否则以表达式2的值作的值作为整个条件表达式的值。为整个条件表达式的值。例如条件语句:例如条件语句: 可用条件表达式写为:可用条件表达式写为: 执行该语句的语义是:执行该语句的语义是:如如ab为真,则把为真,则把a赋予赋予max,如如ab为假,则把为假,则把b 赋予赋予max。使用条件表达式时,还应使用条件表达式时,还应以下几点:以下几点:1)条件运算符的运算优先级低于关系运算符和)条件运算符的运算优先级低于关系运算符和 算术运算符,但高于赋值符。算术运算符,但高于赋值符。 因此:因此: 可以去掉括号而写为可以去掉括号而写为 2)条件运算符)条件运算符是是。3)条件运算符的结合方向是)条
10、件运算符的结合方向是。 例如:例如: 应理解为应理解为 这也就是条件表达式嵌套的情形,即其中的这也就是条件表达式嵌套的情形,即其中的表达式表达式3又是一个条件表达式。又是一个条件表达式。例例6:计算:计算方法一:方法一:void main( ) float x,y; scanf (”%f ”,&x); if (x3) y=x*x+2; else y=3*x+7*x*x; printf(”y=%fn”,y);例例7:从键盘输入任意的两个实数,按从小到大顺序:从键盘输入任意的两个实数,按从小到大顺序输出这两个数,请编程实现。输出这两个数,请编程实现。void main( ) float a
11、,b; scanf (”%f%f ”,&a,&b); if (ab) a=a+b;b=a-b;a=a-b; printf(”%f,%fn”,a,b);可用语句可用语句代替代替a=a+b;b=a-b;a=a-bt=a;a=b;b=t例例8:P105 5.5 计算计算方法一:方法一:main( ) float x,y; scanf (”%f ”,&x); if (x1) y=x; else if ( x10 ) y=2*x-1; else y=3*x-11; printf(”y=%fn”,y);)10(113)101 (12) 1(xxxxxxy方法二:方法二:void m
12、ain( ) float x,y; scanf (”%f ”,&x); if (x1) y=x; else if ( x10 ) y=2*x-1; else y=3*x-11; printf(”y=%fn”,y);)10(113)101 (12) 1(xxxxxxy 、方法三:方法三:if (x10) if x1 y=x; else y=2*x-1; else y=3*x-11; 后不能加后不能加 和和 可一起省略可一起省略 若上面分段函数改为若上面分段函数改为则程序改为则程序改为void main( ) float x,y; scanf (”%f ”,&x); else if ( x1) y=x; else if ( x10 ) y=2*x-1; else y=3*x-11; printf(”y=%fn”,y);)2010(113)101 (12) 12(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度精密机床租赁及环境质量达标履约合同
- 2025年度房地产开发商信用证融资抵押管理服务合同
- 2025年生态环保型绿色屋顶安装工程合同
- 2025年新型城镇化道路绿化景观设计与施工综合合同
- 钢结构施工技术培训方案
- 河南省许汝平九校联盟2026届化学高二第一学期期中教学质量检测试题含解析
- 排水项目资金预算与财务管理方案
- 光伏发电系统功率优化方案
- 2025年风力发电行业研究报告及未来行业发展趋势预测
- 光伏电站财务风险管控方案
- 福建省2025年中考物理真题及答案
- GB/T 2820.5-2025往复式内燃机驱动的交流发电机组第5部分:发电机组
- 呼吸机管路设计与应用
- 2025-2030年中国黑胶唱片行业市场现状供需分析及投资评估规划分析研究报告
- 马工程《教育学原理》核心框架解析
- 采石场人员管理制度
- 2025年湖北省高考物理试卷真题(含答案解析)
- 小学生无故旷课问题
- 2024年秋季云南高中学业水平合格考历史试卷真题(含答案详解)
- 中国抗癌协会神经内分泌肿瘤诊治指南(2025年版)解读
- T/CSMT-YB 006-2023精密数字温度计性能测试与评价方法
评论
0/150
提交评论