制作:方斌 思考:a==0可以写为:!aa!=0可以写为:a 3.说明 (1)逻辑运算符两侧的操作数,除可以是O和非O的整数外,也可以 是其它任何类型的数据,如实型、字符型等。(2)在计算逻辑表达式时, 只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所 有的表达式都被求解)。换句话说: 1)对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再 判定或求解第二操作数。如a&&b88c只有a为真时,才判别b的值;只有 a和b均为真时,才判别的值。只要a为假,就不再判别b和c的值,直接求 得表达式的值为假。 2)对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再 判定或求解第二操作数。如a|b‖|c只要a为真,就不再判别b和c的值, 直接求得表达式的值为真。只有a为假时,才判别b的值;只有a和b均为假 时,才判别c的值。 例如,假设n1、n2、n3、n4、X、y的值分别为1、2、3、4、1、1, 则求解表达式“(X=n1>n2)8&(y=n3>n4)"后,的值变为O,而y的值 不变,仍等于1
制 作:方 斌 思考:a==0 可以写为:!a a!=0 可以写为:a 3.说明 (1)逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以 是其它任何类型的数据,如实型、字符型等。 (2)在计算逻辑表达式时, 只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所 有的表达式都被求解)。换句话说: 1)对于逻辑与运算,如果第一个操作数被判定为“假” ,系统不再 判定或求解第二操作数。如 a&&b&&c 只有a为真时,才判别b的值;只有 a和b均为真时,才判别c的值。只要a为假,就不再判别b和c的值,直接求 得表达式的值为假。 2)对于逻辑或运算,如果第一个操作数被判定为“真” ,系统不再 判定或求解第二操作数。如 a||b||c 只要a为真,就不再判别b和c的值, 直接求得表达式的值为真。只有a为假时,才判别b的值;只有a和b均为假 时,才判别c的值。 例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1, 则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x的值变为0,而y的值 不变,仍等于1!
制作:方斌 53语句和条件运算符 if语句:判别条件是否满足(表达式的值为真时满足),来决定程序的流 程(执行两路操作之一)。 5.3.1if语句的三种形式 1、if(表达式)语句 例如 达 假(O) if (x>y printf ( "%d"X) 真(非0) 语句
制 作:方 斌 5.3 if语句和条件运算符 if语句:判别条件是否满足(表达式的值为真时满足),来决定程序的流 程(执行两路操作之一)。 5.3.1 if语句的三种形式 1、if (表达式) 语句 例如: if (x>y) printf("%d",x);
制作:方斌 2、if(表达式)语句1else语句2 真(非0) 表达式 假(0) 语句1 语句2 例如: if (x>y) printf(" %d"x; else printf("%/d"y:
制 作:方 斌 2、if (表达式) 语句1 else 语句2 例如: if (x>y) printf("%d",x); else printf("%d",y);
制作:方斌 3、i(表达式1)语句1 else if(表达式2)语句2 表达式1 真 else(表达式3语句3 表达式2 真 表达式3 假 else if(表达式m)语句m 假 ese语句n 语句[语甸[语句[语句4[语 例如: if(number> 500) const =0. 15: else if(number> 300)const =0.10 else if (number> 100)const =0.075; else if (number 50)const=0.05 else const =0
制 作:方 斌 3、if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 ..... else if (表达式m) 语句m else 语句n 例如: if (number > 500) const = 0.15; else if (number > 300) const = 0.10; else if (number > 100) const = 0.075; else if (number > 50) const = 0.05; else const = 0;
制作:方斌 说明: 1、if(表达式)中的“表达式”为逻辑表达式或关系表达式,例、 if (a==b&&x==y printf(a=b, X=y 也可以为数值类型,如、 if (3)printf(o. K. i if ca) printf("%d",a); 2、注意语句应以分号结束。例、 if (x>0 printf("%/f " x) else printf("%of",-x) 3、语句可以是复合语句,例、 if(a+b>c&&b+c>a&&C+a>b) { s=0.5*(a+b+c; area sqrt(s(s-a)(s-b)(s-c); printf("area=%06.2f ,area); } else printf("it is not a trilateral") 注意:大括号{}本身是一个完整的复合语句,不需要分号
制 作:方 斌 说明: 1、if (表达式)中的“表达式”为逻辑表达式或关系表达式,例、 if (a==b && x==y) printf("a=b,x=y"); 也可以为数值类型,如、 if (3) printf("O.K."); if ('a') printf("%d", 'a'); 2、注意语句应以分号结束。例、 if (x>0) printf(" %f", x); else printf(" %f", -x); 3、语句可以是复合语句,例、 if(a+b>c&&b+c>a&&c+a>b) { s = 0.5*(a+b+c); area = sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%6.2f",area); } else printf("it is not a trilateral"); 注意:大括号{ }本身是一个完整的复合语句,不需要分号