C语言关系、逻辑和条件表达式.ppt

上传人:小飞机 文档编号:6503780 上传时间:2023-11-07 格式:PPT 页数:31 大小:336.99KB
返回 下载 相关 举报
C语言关系、逻辑和条件表达式.ppt_第1页
第1页 / 共31页
C语言关系、逻辑和条件表达式.ppt_第2页
第2页 / 共31页
C语言关系、逻辑和条件表达式.ppt_第3页
第3页 / 共31页
C语言关系、逻辑和条件表达式.ppt_第4页
第4页 / 共31页
C语言关系、逻辑和条件表达式.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《C语言关系、逻辑和条件表达式.ppt》由会员分享,可在线阅读,更多相关《C语言关系、逻辑和条件表达式.ppt(31页珍藏版)》请在三一办公上搜索。

1、2023/11/7,1,上一节我们学到了,赋值表达式和赋值语句=、+=、左值printf()%d、%f.scanf()&、%lfgetchar()putchar(),2023/11/7,2,第四章 选择结构程序设计,Conditional Operator and ExpressionsBranching,2023/11/7,3,To be or not to be,this is a question.,2023/11/7,4,4.1 选择结构和条件判断4.2 用if语句实现选择结构4.3 关系运算符和关系表达式4.4 逻辑运算符和逻辑表达式4.5 条件运算符和条件表达式4.6 选择结构的嵌

2、套4.7 用switch语句实现多分支选择结构4.8 选择结构程序综合举例,内容,2023/11/7,5,关系运算符和表达式,,=,条件为真(true),2023/11/7,6,优先级 P378,()-.!+-+(正号)-*&(类型)sizeof*/%+-=!=&|&|?:=+=-=*=/=%=&=|=,2023/11/7,7,关系、算术、赋值运算符的优先级,int a=3,b=2,c=1;ca+b 等效于c(a+b)ab=c 等效于(ab)=ca=bc 等效于 a=(bc)while(c=getchar()!=EOF)while(c=getchar()!=EOF),2023/11/7,8,分

3、清=和=,int a=1;if(a=0)printf(OK);int a=0;if(a=0)printf(OK);,int a=1;if(a=0)printf(OK);int a=0;if(a=0)printf(OK);,2023/11/7,9,分清=和=,int a;a=0;a=1;,int a;a=0;a=1;,下面用法能起点小作用:,int a=0;if(0=a)printf(OK);,int a=0;if(0=a)printf(OK);,编译出错,2023/11/7,10,4.4 逻辑运算符,逻辑运算,运算结果为1和0如果a是非0,结果是0并不改变a的值,2023/11/7,11,修改

4、后的逻辑运算真值表,2023/11/7,12,逻辑运算符的优先级,逻辑运算符的优先次序!&|(!为三者中最高)与其他运算符的优先次序,!(高)算术运算符关系运算符&和|赋值运算符(低),2023/11/7,13,逻辑表达式举例,若a=4,则!a的值为0若a=4,b=5,则a&b的值为1 a和b值分别为4和5,则a|b的值为1a和b值分别为4和5,则!a|b的值为14&0|2的值为15 3&8 4-!00,2023/11/7,14,怎么表示如果分数80小于等于grade且小于90,则五分制分数为A?if(80=80&grade=80)&(grade90),加括号最好怎么表示如果字符型变量c为Y或

5、y?if(c=Y|y),错if(c=Y|c=y),对,2023/11/7,15,逻辑表达式的自动优化,a(m=ab)&(n=cd),2023/11/7,16,判断闰年,判别某一年是否闰年,用逻辑表达式表示闰年的条件是符合下面二者之一:P20能被4整除,但不能被100整除,如2008能被400整除,如2000(year%4=0 否则为非闰年,17,4.4.3 逻辑型变量,与C+或Java不同,没有boolean类型(in C89/C90)in C99,增加_Bool 类型如果想用bool类型,使用stdbool.h,2023/11/7,18,4.5 条件表达式,条件表达式的一般形式为表达式?表达

6、式:表达式把a和b中的最大值赋值给maxif(a b)max=a;else max=b;max=(a b)?a:b;这种表达式切忌用得过于繁杂,2023/11/7,19,条件运算符的执行顺序,表达式?表达式:表达式求解表达式1若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值,2023/11/7,20,优先级,()-.!+-+-*&(类型)sizeof*/%+-=!=&|&|?:=+=-=*=/=%=&=|=,2023/11/7,21,结合方向为自右至左以下为合法的使用方法:ab?(max=a):(

7、max=b);ab?printf(%d,a):printf(%d,b);,2023/11/7,22,例4.4 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,#include int main(void)char ch;printf(请输入一个字符,按回车结束:);scanf(%c,if,if(x%2=0)y+=x/2;如果条件为真,执行y+=x/2;否则,什么也不做,2023/11/7,23,2023/11/7,24,例4.2 输入两个实数,按数值从小到大的次序输出这两个实数,#include int main(void)float

8、a,b,t;scanf(%f%f,2023/11/7,25,两整数交换,a和b交换,要求不占用额外内存空间方法1:a=a+b;b=a-b;a=a-b;方法2:位运算,自己完成,2023/11/7,26,例4.3 输入3个数a,b,c,要求按由小到大的顺序输出。,解题思路:可以先用伪代码写出算法:if ab,a和b对换(a是a、b中的小者)if ac,a和c对换(a是三者中最小者)if bc,b和c对换(b是三者中次小者)顺序输出a,b,c,排序问题,2023/11/7,27,#include int main(void)float a,b,c,t;scanf(%f,%f,%f,独占一行,如果没有这个,会发生什么?,2023/11/7,28,else关键字,if(x%2=0)y+=x/2;else y+=(x+1)/2;可选如果条件为假,执行第二个分支y+=(x+1)/2;,2023/11/7,29,else if 关键字,if(x%2=0)y+=x/2;else if(x%4=1)y+=2(x+3)/4);elsey+=(x+1)/2;,2023/11/7,30,这一节我们学到了,关系运算符和表达式,=,=,=,!=和=的区别逻辑运算符和表达式&|!?:if,2023/11/7,31,作业,P111 习题3P112 习题6P112 习题12,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号