3、
4、(逻辑或)运算规则优先次序赋值<
5、
6、<&&<关系<算术<!第四章选择结构程序设计(1)!:取逻辑值的相反值。(2)&&:参加运算的两个逻辑值都为真时,结果为真(1)。(3)
7、
8、:参加运算的两个逻辑值都为假时,结果为假(0)。逻辑表达式用逻辑运算符将关系表达式和逻辑量连接起来的式子。举例已知:(a=1b=0)1a
9、
10、b&
11、&0!a&&(5>3)
12、
13、b0双目单目二、逻辑运算符和逻辑表达式6第四章选择结构程序设计二、逻辑运算符和逻辑表达式第五章选择结构程序设计举例5>3&&8<4-!00(5>3)&&(8<(4-!0))4&&5>3
14、
15、(a=6)1逻辑运算符两侧的运算对象不但可以是0和1,也可以是0或非0的整数,也可是任何类型的数据。系统判定标准:0为假;非0为真。当“与运算”的左侧为0,或者“或运算”的左侧为1时,右侧的表达式不再进行计算。短路现象#includevoidmain(){inta=1,b=1;if(a>
16、1&&(b=5))a=4;printf(“%d,%d”,a,b);}1,17选择结构单分支双分支if(表达式)语句多分支if(表达式)语句1else语句2if(表达式1)语句1elseif(表达式2)语句2……else语句nif语句的嵌套switch语句第四章选择结构程序设计选择结构的分类8格式流程图第四章选择结构程序设计if(表达式)语句三、if语句实现选择结构–单分支不成立(假、0)表达式语句块成立(真、1)if(x>y)printf(“%d”,x);举例9例4.5第四章选择结构程序设计#include"std
17、io.h"intmain(){intnum1,num2,max;printf("inputtwonumbers:");scanf("%d%d",&num1,&num2);max=num1;if(maxintmain(){floata,b,t=0;scanf(“%f,%
18、f”,&a,&b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f”,a,b);return0;}3,43.00,4.00……if(a>b)t=a;a=b;b=t;…………if(a>b)t=a;a=b;b=t;……3,44.00,0.00当某些语句作为一个整体出现的时候,必须是复合语句的形式。三、if语句实现选择结构–单分支输入两个实数,按由小到大的数序输出它们。11格式if(x>y)printf(“%d”,x);elseprintf(“%d”,y);第四章选择结构程序设计
19、if(表达式)语句1else语句2三、if语句实现选择结构–双分支举例流程图12第四章选择结构程序设计#includeintmain(){floata,b,c,p,s;scanf(“%f,%f,%f”,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(“s=%7.2f”,s);}elseprintf(“Notatriangle!”);return0;}输入三角形的三边,求三角形的
20、面积。3,4,5s=6.003,4,8Notatriangle!三、if语句实现选择结构–双分支例4.9输入a,b,c是三角形吗?YNp(a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c))输出s输出“Notatriangle!”13编程实现如下分段函数,输出结果保留2位小数。y=0x≤0练习1#include#in