




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章分支结构程序设计,5.1关系运算符和表达式5.2逻辑运算符和表达式5.3逻辑表达式的跳跃5.4if语句5.5switch语句,5.1关系表达式,由关系运算符、圆括号把两个表达式连接起来的式子。表示条件若所表示的条件成立、则其值为1(非0)、否则其值为0。关系运算符:、=、=、!=例:a=2、39、a!=(a=8)、x+(y=3)=k*z、(a!=3)(kbcd应表示为aba=b=c=0;+a|+b后a、b值分别为0、6,a=1停止不算,值为0赋给a,停止不算,3、执行inta,b,c;a=b=c=-1;+a后a、b、c值分别为0、-1、0,1,a=0,2,不算,值为0,3,c=0,4,整体为0,例1:,main()charc=k;inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf(%d,%dn,!x*!y,!x);printf(%d,%dn,x|i运行结果:0,01,00,1,0,X为非0,为非0,后面不算,为0,后面不算,5.4选择结构(if语句),5.4.1if语句的三种形式1、第一种形式为基本形式:ifif(表达式)语句语义:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。,表达式可以是任意合法表达式,后面不能加;,例2:voidmain()inta,b,max;printf(ninputtwonumbers:);scanf(%d%d,输入:2346输出:max=46,此语句用于提示输入,max=23,max=46,例3:voidmain()inta,b,c,t;printf(ninputtwonumbers:);scanf(%d%d%d,输入:162输出:621,实现数的互换,功能:输入三个数,按照从大到小顺序输出,例4:从键盘输入一个字符,判断它是否小写字母。若是,将其转换成大写字母,否则不进行转换,作后输出该字母。#includemain()charc,a;c=getchar();if(c=z)a=c;/*判断非小写字母情况*/if(c=a)a=c-32;*判断是否是小写字母情况*/printf(%cn,a);,main()charc;c=getchar();if(c=a)c-=32;printf(%cn,c);,2、第二种形式为:if-elseif(表达式)语句1;else语句2;语义:如果表达式的值为真,则执行语句1,否则执行语句2。,后面不能加;,voidmain()inta,b;printf(inputtwonumbers:);scanf(%d%d,输入:2346输出:max=46,输入两个整数,输出其中大数,例2的改写,3、第三种形式为if-else-if形式:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;elseif(表达式m)语句m;else语句n;,语义:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。,后面不能加;,此为真,做语句1,其它语句都不做,上面的语句为以下三种格式:1、空语句2、一个语句(不引起转移)3、前后加大括号的语句(复合语句),也叫程序段,如:inta;floatb;a=3;b=7.0;,;,允许在复合语句前部定义变量,只能在复合语句中使用,inta;a=3;floatb;b=7.0;,变量要在最前面定义,不能写成,#includestdio.hvoidmain()输入:Acharc;输出:Thisisacapitalletterc=getchar();if(c=0,例5,4、在使用if语句中应注意以下问题:1)在三种形式的if语句中,在if之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;都是允许的。只要表达式的值为非0,即为“真”。如在:if(a=5);中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。,又如,有程序段:if(a=b)printf(%d,a);elseprintf(a=0);本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。,=为赋值运算符,比较运算符为=,2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用括起来组成一个复合语句。但要注意的是在之后不能再加分号。例如:if(ab)a+;b+;elsea=0;b=10;,if(ab)a+;b+;;elsea=0;b=10;;,不能写成,5.4.2条件运算符和条件表达式,在条件语句中,只执行单个的赋值语句时,可使用条件表达式来实现。条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。条件表达式的一般形式为:表达式1?表达式2:表达式3求值规则为:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。,非0,0,例如条件语句:if(ab)max=a;elsemax=b;可用条件表达式写为:max=(ab)?a:b;执行该语句的语义是:如ab为真,则把a赋予max,如ab为假,则把b赋予max。,使用条件表达式时,还应注意以下几点:1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此:max=(ab)?a:b可以去掉括号而写为max=ab?a:b2)条件运算符?和:是一对运算符,不能分开单独使用。3)条件运算符的结合方向是自右至左。例如:ab?a:cd?c:d应理解为ab?a:(cd?c:d)这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。,例6:计算,方法一:voidmain()floatx,y;scanf(”%f”,表达式,成立值为1,y=x3?x*x+2:3*x+7*x*x;,例7:从键盘输入任意的两个实数,按从小到大顺序输出这两个数,请编程实现。voidmain()floata,b;scanf(”%f%f”,代替,复合语句可以定义变量,a=a+b;b=a-b;a=a-bt=a;a=b;b=t,例8:P1055.5计算,方法一:main()floatx,y;scanf(”%f”,1=xscanf(”%f”,、可省略,y=x1?x:(x10?2*x-1:3*x-11);,(、)可省略,方法三:,if(x10)if(x1)y=x;elsey=2*x-1;elsey=3*x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 睡眠质量提升与养生保健技巧考核试卷
- 灯具国际贸易风险与应对策略考核试卷
- 锌锰电池的电极材料在长期储存中的性能保持考核试卷
- 银发族养生保健特殊关注考核试卷
- 猫狗常见疾病防治指南
- 冬季小学生疾病预防指南
- 食源性疾病主动监测体系构建与应用
- Orchinol-生命科学试剂-MCE
- 超神数学-高考数学总复习拔高篇(二轮)专题19平面向量中的取值范围问题(含答案或解析)
- 2025年流媒体平台竞争格局下的内容创新实践与案例分析
- 蓝鲸的眼睛测试题及答案
- 2025年道教人员考试试题及答案
- 兽药GMP培训课件
- 2022-2023学年浙江省温州市永嘉县人教PEP版四年级下册期末测试英语试卷
- 《现代色谱分析HPL》课件
- 2024年设备监理师考试题库及答案(历年真题)
- 三病母婴传播及阻断
- 初中常见副词英语单选题100道及答案解析
- 安徽农业大学《中级财务会计》2022-2023学年第一学期期末试卷
- HXD1C型机车转向架培训教材(20091008)资料
- 工业自动化设备维护保养操作手册
评论
0/150
提交评论