版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 分支结构程序设计,5.1 关系运算符和表达式 5.2 逻辑运算符和表达式 5.3 逻辑表达式的跳跃 5.4 if语句 5.5 switch语句,5.1 关系表达式,由关系运算符、圆括号把两个表达式连接起来的式子。 表示条件 若所表示的条件成立、则其值为1(非0)、否则其值为0。 关系运算符:、=、=、!= 例: a=2 、39 、a != ( a=8 ) 、 x+(y=3)=k*z 、(a!=3)(kl),97,8,表达式 值为1,优先,成立为1 不成立为0,非=,注意:数学中多个条件,例 abcd 应表示为 ab a=b=c=0; + +a|+ +b 后a、b值分别为0、6,a=1
2、停止不算,值为 0 赋给a, 停止不算,3、执行 int a,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() 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 运行结果:0,0 1,0 0,1,0,X为非0,为非0,后面不算,为0,后面不算,5.4 选择结构(if 语句),5.4.1 if语句的三种形式 1、第一种形式为基本形式: if if(表达式) 语句
3、语义:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。,表达式可以是任意合法表达式,后面不能加;,例2:void main() int a,b,max; printf(n input two numbers: ); scanf(%d %d, 输入:23 46 输出:max=46,此语句用于提示输入,max=23,max=46,例3:void main() int a,b,c,t; printf(n input two numbers: ); scanf(%d %d %d , 输入:1 6 2 输出:6 2 1,实现数的互换,功能:输入三个数,按照从大到小顺序输出,例
4、4:从键盘输入一个字符,判断它是否小写字母。若是,将其转换成大写字母,否则不进行转换,作后输出该字母。 #include main() char c,a; c=getchar(); if(c=z ) a=c; /*判断非小写字母情况*/ if(c=a) a=c-32; *判断是否是小写字母情况*/ printf(%cn,a); ,main() char c; c=getchar(); if(c=a)c-=32; printf(%cn,c);,2、第二种形式为: if-else if(表达式) 语句1; else 语句2; 语义:如果表达式的值为真,则执行语句1,否则执行语句2 。,后面不能加;
5、,void main() int a, b; printf(input two numbers: ); scanf(%d %d, 输入:23 46 输出:max=46,输入两个整数,输出其中大数,例2的改写,3、第三种形式为if-else-if形式: if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式m) 语句m; else 语句n;,语义: 依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。,后面不能加;,此
6、为真,做语句1,其它语句都不做,上面的语句为以下三种格式: 1、空语句 2、一个语句(不引起转移) 3、前后加大括号的语句(复合语句),也叫程序段,如: int a; float b; a=3; b=7.0;,;,允许在复合语句前部定义变量,只能在复合语句中使用,int a; a=3; float b; b=7.0;,变量要在最前面定义,不能写成,#includestdio.h void main() 输入:A char c; 输出:This is a capital letter c=getchar(); if(c=0 ,例5,4、在使用if语句中应注意以下问题: 1)在三种形式的if语句中
7、,在if之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。 例如: if(a=5) 语句; if(b) 语句; 都是允许的。只要表达式的值为非0,即为“真”。 如在: if(a=5); 中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。,又如,有程序段: if(a=b) printf(%d,a); else printf(a=0); 本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。,=为赋值运算符,比较运算符为=,
8、2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。 3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用括起来组成一个复合语句。但要注意的是在之后不能再加分号。 例如: if(ab) a+;b+; else a=0;b=10;,if(ab) a+;b+;; else a=0;b=10;;,不能写成,5.4.2 条件运算符和条件表达式,在条件语句中,只执行单个的赋值语句时,可使用条件表达式来实现。 条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。 条件表达式的一般形式为: 表达式1? 表达式2 :
9、表达式3 求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。,非 0,0,例如条件语句: if(ab) max=a; else max=b; 可用条件表达式写为: max=(ab)?a:b; 执行该语句的语义是: 如ab为真,则把a赋予max, 如ab为假,则把b 赋予max。,使用条件表达式时,还应注意以下几点: 1)条件运算符的运算优先级低于关系运算符和 算术运算符,但高于赋值符。 因此:max=(ab)?a:b 可以去掉括号而写为 max=ab?a:b 2)条件运算符?和:是一对运算符,不能分开 单独使用。 3)条件运算符的
10、结合方向是自右至左。 例如:ab?a:cd?c:d 应理解为 ab?a:(cd?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。,例6:计算,方法一: void main( ) float x,y; scanf (”%f ”, ,表达式,成立值为1,y=x3 ? x*x+2 : 3*x+7*x*x;,例7:从键盘输入任意的两个实数,按从小到大顺序输出这两个数,请编程实现。 void main( ) float a,b; scanf (”%f%f ”,代替,复合语句可以定义变量,a=a+b;b=a-b;a=a-b t=a;a=b;b=t,例8:P105 5.5 计算,方法一: main( ) float x,y; scanf (”%f ”,1=x scanf (”%f ”, , 、 可省略,y= x1? x :( x10 ? 2*x-1 : 3*x-11);,(、)可省略,方法三:,if (x10) if (x1) y=x; else y=2*x-1; else y=3*x-11;, 后不能加;, 、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青岛理工大学公差与技术测量期末复习题及参考答案
- 21个领导力法则
- 业务新员工年终总结
- 组成意义心电图波的和
- 做六有青年活动
- 社区护理基础-1729734559038
- 言语治疗技术失语症的分类
- 剖腹产后护理查房
- 北京市顺义区2021届高三下学期第二次统练化学试题
- 医疗垃圾整顿
- 戏剧艺术概论-中央戏剧学院中国大学mooc课后章节答案期末考试题库2023年
- 巯基乙醇化学品安全技术说明书
- 小学道德与法治课评分表
- 汽修厂搞个优惠活动
- 幼儿园教研五大领域主题30篇
- 2023年民俗博物馆防火、防盗、防恐应急预案
- 七年级劳动技能课全册教案
- 法学英语论文
- 如何培养一支高素质的班干部演示文稿
- 2023年西安国际港务区招聘笔试参考题库附带答案详解
- 发动机冷却系统说课稿课件
评论
0/150
提交评论