《C语言ch关系逻辑和条件表达式教程.pptx》由会员分享,可在线阅读,更多相关《C语言ch关系逻辑和条件表达式教程.pptx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023/2/211第四章 选择结构程序设计C o n d i t i o n a l O p e r a t o r a n d E x p r e s s i o n sB r a n c h i n g第1页/共30页2023/2/212To be or not to be,this is a question.第2页/共30页2023/2/2134.1 选择结构和条件判断4.2 用if语句实现选择结构4.3 关系运算符和关系表达式4.4 逻辑运算符和逻辑表达式4.5 条件运算符和条件表达式4.6 选择结构的嵌套4.7 用switch语句实现多分支选择结构4.8 选择结构程序综合举例内容
2、第3页/共30页ifif(x%2=0)printf(Yesn);如果条件为真,输出Yes否则,什么也不做2023/2/214第4页/共30页2023/2/215输入两个整数,交换这两个数后输出int a,b,t;scanf(%d%d,&a,&b);t=a;a=b;b=t;printf(%d%dn,a,b);第5页/共30页2023/2/216 例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排序问题
3、第6页/共30页2023/2/217int a,b,c,t;scanf(%d%d%d,&a,&b,&c);if(a b)/a是a、b中的小者 t=a;a=b;b=t;if(a c)/a是三者中最小者 t=a;a=c;c=t;if(b c)/b是三者中次小者 t=b;b=c;c=t;printf(%d%d%dn,a,b,c);独占一行独占一行如果没有这个如果没有这个,会发,会发生什么?生什么?第7页/共30页2023/2/218else关键字if(x%2=0)y=x/2;else y=(x+1)/2;如果条件为真,执行第一个分支如果条件为假,执行第二个分支第8页/共30页输入一个整数,输出绝对值
4、int a;scanf(%d,&a);if(a0)printf(%dn,a);else printf(%dn,-a);2023/2/219第9页/共30页10else if 关键字if(x%2=0)y=x/2;else if(x%4=1)y=2(x+3)/4);elsey=(x+1)/2;第10页/共30页11关系运算符和表达式,=,条件为真(true)if(a1)if(1)if(100)第11页/共30页2023/2/2112优先级 P3781.()-.2.!+-+(正号)-*&(类型)sizeof3.*/%4.+-5.6.=7.=!=8.&9.10.|11.&12.|13.?:14.=+=
5、-=*=/=%=&=|=15.,第12页/共30页2023/2/2113关系、算术、赋值运算符的优先级int a=3,b=2,c=1;ca+b 等效于c(a+b)ab=c 等效于 (ab)=ca=bc 等效于 a=(bc 等效于 a=(bc)while(c=getchar()!=EOF)while(c=getchar()!=EOF)算术运算符算术运算符 (高高)赋值运算符赋值运算符 (低低)关系运算符关系运算符 第13页/共30页2023/2/2114分清=和=int a=1;if(a=0)printf(OK);int a=0;if(a=0)printf(OK);int a=1;if(a=1)
6、printf(OK);int a=0;if(a=0)printf(OK);第14页/共30页2023/2/2115分清=和=常量放左边,能起点小作用:nint a=0;if(0=a)printf(OK);nint a=0;if(0=a)printf(OK);编译出错编译出错编译出错编译出错第15页/共30页2023/2/21164.4 逻辑运算符逻辑运算,运算结果为1和0&与运算,只有左右都为真,结果才是真(ab&bc);a大于b,并且b大于c|或运算,只有左右都为假,结果才是假(ab|bc);a大于b,或者b大于c!求反,非(!a);如果a是0,结果非0,即1;如果a是非0,结果是0并不改变
7、a的值if(abc)?第16页/共30页2023/2/2117修改后的逻辑运算真值表ab!aa&ba|b 非非0非非0011非非000010非非010100100第17页/共30页2023/2/2118逻辑运算符的优先级!&|(非与或)与其他运算符的优先次序 !(高)(高)算术运算符算术运算符关系关系运算符运算符&和和|赋值运算符赋值运算符 (低)(低)第18页/共30页2023/2/2119逻辑表达式举例若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第19页/共
8、30页2023/2/2120怎么表示如果分数80小于等于grade且小于90,则五分制分数为A?if(80=grade=80&grade=80)&(gradeb)&(n=cd)第21页/共30页2023/2/2122判断闰年判别某一年是否闰年,用逻辑表达式表示闰年的条件是符合下面二者之一:P20能被4整除,但不能被100整除,如2008能被400整除,如2000(year%4=0&year%100!=0)|(year%400=0)如果表达式值为1,则闰年;否则为非闰年第22页/共30页2023/2/21244.5 条件表达式条件表达式的一般形式为表达式?表达式:表达式把a和b中的最大值赋值给m
9、axif(a b)max=a;else max=b;max=(a b)?a:b;这种表达式切忌用得过于繁杂第24页/共30页2023/2/2125条件表达式的执行顺序表达式?表达式:表达式求解表达式1若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值第25页/共30页2023/2/2126优先级()-.!+-+-*&(类型)sizeof*/%+-=!=&|&|?:=+=-=*=/=%=&=|=,第26页/共30页2023/2/2127结合方向自右至左以下为合法的使用方法,但不推荐。ab?(max=a):(max=b);max=(ab?a:b);ab?printf(%d,a):printf(%d,b);第27页/共30页2023/2/2128例4.4 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。char ch;printf(请输入一个字符,按回车结束:请输入一个字符,按回车结束:);scanf(%c,&ch);ch=(ch=A&ch,=,=,=,!=和=的区别逻辑运算符和表达式&|!?:if第29页/共30页2023/2/2130感谢您的欣赏!第30页/共30页