资源描述:
《C语言第4章(配清华大学谭浩强)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在C程序的三种结构中,分支结构是一重要结构,其中的P为条件第四章选择结构程序设计问题:条件如何表达?逻辑运算、关系运算§4.1关系运算符关系运算比较运算,如:a>3为一比较运算,当a=5,a>3成立。结果称为“真”,否则,如:a=1,a>3不成立,为假。上述表达式a>3称为关系表达式。4.1.1关系运算符及其优先次序1.<,<=,>,>=为同一优先级,==,!=等为同一优先级,但前者高于后者。2.关系运算符优先级低于算术运算符。C语言提供了六种关系运算符<<=>>===!=优先级为:3.关系运算符优先级高于赋值运算符。如下图:算术运算符赋值运算
2、符关系运算符高低举例:c>a+bc>(a+b)a>b!=c(a>b)!=ca==bca=(b>c)4.1.2关系表达式关系表达式的结果值规定为1或0.如:a>b,a+b>b+c,(a=3)>(b=5),'a'>'b',(a>b)>(bb)==c成立1b+cb则a>b值为1,所以d=1.f=a>b>ca>b为1,a>
3、b>c为0,所以f=0.§4.2逻辑运算符和逻辑表达式用逻辑运算符将关系表达式、逻辑表达式连接起来的式子–––逻辑表达式。4.2.1逻辑运算符及优先级ab!a!ba&&ba¦¦b真真假假真真真假假真假真假真真假假真假假真真假假三种:&&(与),¦¦(或)!(非)其意义见真值表a&&b当a,b均为1时,才为1a¦¦b当a,b中有一个为1时,才为1!a当a为1,!a为0,反之为1.由此看到:¦¦和&&为双目运算符.!为单目运算符。优先级定义:2.&&和¦¦低于关系运算符。!高于算术运算符1.!(非)优先于&&(与).&&优先于¦¦即:!&&¦¦例
4、:!a&&b¦¦x>y&&c((!a)&&b)¦¦((x>y)&&c)4.2.2逻辑表达式1.逻辑表达式的值与关系表达式值一样,真为1,假为0。例:a=4则!a值为0.此处只要a0,为真.则!a值为0.a=4,b=5a&&b为1前面已定义了逻辑表达式,以下看一看逻辑表达式的值及具体的运算。4&&0¦¦2为1.总之,在逻辑运算中,非0值参加逻辑运算时被看成1处理.a=4,b=5a¦¦b为1a=4,b=5!a¦¦b为12.一个逻辑表达式中的逻辑运算符并不是一定全部执行.一个实际的例子:判断年号是否为润年。如:a&&b&&c.则当a=0(
5、假)时,b,c不需判断。当a=1,b=0,则不需判c.又如:a¦¦b¦¦c.当a=1时,b,c均不必判别。润年的定义:能被4整除且又能被400整除。年号能被4整除但不能被100整除。当(year%4!=0)¦¦(year%100==0&&year%400!=0)为1时,year为非润年。设用变量year表示年号当((year%4==0&&year%100!=0)¦¦year%400==0)为1时,year为润年,否则为非润年。如果要判别非润年可在上述表达式前加非(!)运算符.当!((year%4==0&&year%100!=0)¦¦year%
6、400==0)为1时,year为非润年。或者:即:则:§4.3if语句–––条件判断4.3.1if的三种形式功能:当表达式值非0时,执行语句A,否则不执行语句A.表达式语句A=00例如:if(x>y)printf("%d",x)形式1if(表达式)语句A其流程图:形式2if(表达式)语句Aelse语句B功能:表达式为非0,执行语句A表达式为0,执行语句B表达式语句A语句B0=0例:if(x>y)printf("%d",x);elseprintf("%d",y);形式3if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)
7、语句3……elseif(表达式n)语句nelse语句n流程:表达1表达2表达3表达n语句1语句2语句3语句n语句n语句1……0=0=0000如:if(3)prinft("o.k");if('a')…1.表达式可以是逻辑、关系,甚至是算术表达式。2.上述形式中的语句必须以分号结束3.上述形式中的语句可以是由{}括起来的复合语句。此时,在{}外可以不用分号.注意的问题:main(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f",a,b);}例
8、4.1输入两个实数,按代数值由小到大次序输出这两个数。3.6,–3.2–3.20,3.60运行情况如下:例4.2输入三个数,按小大顺序