C语言第7讲关系运算与逻辑运算if语句.ppt

上传人:max****ui 文档编号:6334543 上传时间:2020-02-23 格式:PPT 页数:20 大小:333.05KB
返回 下载 相关 举报
C语言第7讲关系运算与逻辑运算if语句.ppt_第1页
第1页 / 共20页
C语言第7讲关系运算与逻辑运算if语句.ppt_第2页
第2页 / 共20页
C语言第7讲关系运算与逻辑运算if语句.ppt_第3页
第3页 / 共20页
点击查看更多>>
资源描述
第7讲 关系运算与逻辑运算if语句 第四章选择结构程序设计 4 1 1逻辑值及其在C语言中的表示 关系运算和逻辑运算的运算结果都是一个逻辑值 逻辑值只有两个值 即 真 和 假 在C语言中 用数值1来表示 真 用数值0来表示 假 因此逻辑值也可以作为一个整数参与算术运算 反之 对于参与关系运算或逻辑运算的任意一个表达式 如果该表达式的值为零 就代表一个逻辑 假 值 只要表达式的值不是零 无论是正数还是负数 都代表一个逻辑 真 值 4 1 2关系运算符与关系表达式 所谓 关系运算 实际上就是 比较运算 即将两个数据进行比较 判定两个数据是否符合给定的关系 例如 a b 中的 表示一个大于关系运算 如果a的值是8 b的值是5 则这个关系运算的结果为 真 即数值1 表示条件成立 如果a的值是6 b的值是9 则运算的结果为 假 即数值0 表示条件不成立 1 关系运算符及其优先级 C语言提供了六种关系运算符 如表4 1所示 注意 有些运算符是由两个字符组合而成的 如 其两个字符之间不能有空格 在关系运算符中 前4个优先级相同 后2个也相同 且前4个关系运算符的优先级高于后2个 所有关系运算符的优先级都比算术运算符的优先级低 但都比赋值运算符的优先级高 2 关系表达式 用关系运算符将两个操作数 常量 变量或表达式 连接起来 进行关系运算的式子 称为关系表达式 例如 假设n1 5 n2 8 n3 10 则 1 关系表达式n1 n2的值为0 2 关系表达式n1n3的值为1 4 关系表达式n1 n2 n3的值等为0 注意 由于存在存储误差和转换误差 不能直接用关系运算符 来判断两个实型数是否相等 单精度实数 fabs x y 0 000001双精度实数 fabs a b 1e 14 1 逻辑运算符及其优先级C语言提供了三种基本的逻辑运算符 逻辑代数的其它逻辑运算都可以转化为这三种逻辑运算的组合 4 1 3逻辑运算符与逻辑表达式 优先级次序 逻辑非 14算术运算符13 12关系运算符10 9 逻辑与 5 逻辑或 4赋值运算符2 2 逻辑表达式 由逻辑运算符和运算对象所组成的表达式称为逻辑表达式 逻辑运算的对象可以是C语言中任意合法的表达式 例如 在关系表达式 x y 为真的条件下 若a值为10 b值为16 表达式 a b x y 的值为 假 用数值0来表示 若a值为10 b值为6 表达式 a b x y 的值则为 真 用数值1来表示 表4 3逻辑运算符的运算规则 数学表达式0 x 10表示x的值应该在0到10的范围内 但在C语言中不能用0 x 10这样一个关系表达式来表述以上的数学关系 因为无论x是什么值 按照C语言的运算规则 左边的表达式0 x的运算结果只能为0或1 因而表达式0 x 10的运算结果总是1 只有用逻辑表达式0 x x l0才能正确地表述以上数学关系 用逻辑表达式来表示多个条件的组合 非完全求解 法 当求出某个逻辑运算符的左边的运算量的值就能够明确地确定这个逻辑运算的结果时 就结束求解过程 直接给出运算结果 例如 1 a若a为 真 b为 假 a b及整个表达式的值为 假 只有当a为 真 时 才需要判别b的值 只有当a b的值为 真 时 才需要判别c的值 2 a b c若a为 真 直接求得a b及整个表达式的值为 真 若a为 假 b为 真 a b及整个表达式的值为 真 只有当a为 假 时 才需要判别b的值 只有当a b的值为 假 时 才需要判别c的值 逻辑表达式的 非完全求解 法 例 非完全求解 include stdio h voidmain intx a b c a 1 b 2 c 3 x a 1 4 2if语句 1 if语句的一般形式if 表达式 语句1 else语句2 if语句可以根据给定的条件进行判断 决定执行某个分支程序段 以实现选择结构的程序设计 表达式可以是任何类型的C表达式 语句1 语句2都可以是复合语句 else子句不能单独使用 可选 if语句的执行过程 先求表达式的值 main intn1 n2 n3 max printf Pleaseinputthreenumbers scanf d d d 程序运行情况如下 Pleaseinputthreenumbers 11 22 18max 22 例4 1输入三个整数 求最大值 简化形式 max n1 if n2 max max n2 例4 2输入三个整数 在变量a b c中排序 main inta b c t printf inputa b c scanf d d d 程序运行情况如下 inputa b c 623424a 62 b 34 c 24a 24 b 34 c 62 if语句中的if子句和else子句可以是任意合法的C语句 当然也可以是另外一个if语句 通常称这种语句为嵌套的if语句 内嵌的if语句既可以嵌套在if子句中 也可以嵌套在else子句中 在运用嵌套的if语句时 应该特别注意else子句和if子句的配套问题 如果在嵌套的if语句中没有用一对花括号强制地结束某个内嵌的不带else子句的if语句 则else子句总是与在它前面的 离它最近的 尚未与其它else子句匹配的if子句相匹配 以下介绍两种值得关注的嵌套if语句 2 嵌套的if语句 在if语句的else子句中嵌套多个具有else子句的if语句语句形式如下 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3elseif 表达式4 语句4 else语句n执行过程 从上向下逐一对if后的表达式进行检测 当其中某一个表达式的值为非零时 就执行与之对应的if子句 阶梯形子句中的其余部分就被跳越过去 如果所有表达式的值都为零 则执行最后的else子句 即语句n 如果最内层的if语句没有else子句 那么将不进行任何操作 1 用嵌套的if语句形成多分支语句 例4 3 编写程序 根据输入的学生成绩 给出相应的等级 90分以上的等级为A 60分以下的等级为E 其余每10分为一个等级 main intg printf Enterg scanf d 程序运行情况如下 Enterg 78g 78 C 2 在if子句中嵌套不含else子句的if语句 用花括号把内层if语句括起来后 使得此内层if语句在语法上成为一条独立的语句 从而使得else子句只能与外层的if配对 例4 4编写一程序实现符号函数的功能 main intx y printf Enterx scanf d 程序运行情况如下 Enterx 8x 8 y 1
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!