谢丽聪老师C语言-5分支结构程序.ppt_第1页
谢丽聪老师C语言-5分支结构程序.ppt_第2页
谢丽聪老师C语言-5分支结构程序.ppt_第3页
谢丽聪老师C语言-5分支结构程序.ppt_第4页
谢丽聪老师C语言-5分支结构程序.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章分支结构程序设计 5 1关系运算符和表达式5 2逻辑运算符和表达式5 3逻辑表达式的跳跃5 4if语句5 5switch语句 5 1关系表达式 由关系运算符 圆括号把两个表达式连接起来的式子 表示条件若所表示的条件成立 则其值为1 非0 否则其值为0 关系运算符 例 a 2 3 9 a a 8 x y 3 k z a 3 k l 97 8 表达式值为1 优先 成立为1不成立为0 非 注意 数学中多个条件 例a b c d应表示为a b b c c d不能顺手也写为a b c d关系运算符都是双目运算符 其结合性均为左结合 关系运算符的优先级低于算术运算符 高于赋值运算符 在六个关系运算符中 的优先级相同 高于 和 和 的优先级相同 5 2逻辑表达式 由逻辑运算符 圆括号把表达式连接起来的式子 表示条件若所表示的条件成立 其值为1 非0 否则其值为0逻辑运算符 与 或 非 和 均为双目运算符 具有左结合性 为单目运算符 具有右结合性 逻辑运算符和其它运算符优先级的关系可表示如下 非 与 或 和 低于关系运算符 高于算术运算符 按照运算符的优先顺序可以得出 a b c d等价于 a b c d b c dc x yc x y b 例 设x 0 y 2 a 8 k 1 q 1 z 1 则1 x y 3 a 8 2 3 1 0 1 02 x y a 2 97 13 x y 3 k z a 0 3 1 a 0 0 04 x 7 a 0 7 97 1 97 15 x y 3 a 8 2 3 1 0 1 0 16 k q 1 07 x 1 0 1 5 3逻辑表达式的跳跃 作第一个 知道结果 后面不作 如 非0 不算 0 要算 0 不算 非0 要算 1 执行inta b c a 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 d n x y x printf d d n 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 c n a main charc c getchar if c a c 32 printf c n 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 变量要在最前面定义 不能写成 include stdio h voidmain 输入 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 a b a b else a 0 b 10 if a b a b else a 0 b 10 不能写成 5 4 2条件运算符和条件表达式 在条件语句中 只执行单个的赋值语句时 可使用条件表达式来实现 条件运算符为 和 它是一个三目运算符 即有三个参与运算的量 条件表达式的一般形式为 表达式1 表达式2 表达式3求值规则为 如果表达式1的值为真 则以表达式2的值作为条件表达式的值 否则以表达式2的值作为整个条件表达式的值 非0 0 例如条件语句 if a b max a elsemax b 可用条件表达式写为 max a b a b 执行该语句的语义是 如a b为真 则把a赋予max 如a b为假 则把b赋予max 使用条件表达式时 还应注意以下几点 1 条件运算符的运算优先级低于关系运算符和算术运算符 但高于赋值符 因此 max a b a b可以去掉括号而写为max a b a b2 条件运算符 和 是一对运算符 不能分开单独使用 3 条件运算符的结合方向是自右至左 例如 a b a c d c d应理解为a b a c d c d 这也就是条件表达式嵌套的情形 即其中的表达式3又是一个条件表达式 例6 计算 方法一 voidmain floatx y scanf f 表达式 成立值为1 y x 3 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 x 可省略吗 可以 方法二 voidmain floatx y scanf f 可省略 y x 1 x x 10 2 x 1 3 x 11 可省略 方法三 if x 10 if x 1 y x elsey 2 x 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论