逻辑运算符和逻辑表达式 、逻辑运算符 3种:&&‖! ①、优先级: 算术运算符(高) (非)→&&(与)→‖(或) 关系运算符 88 ②、结合性 是右结合性,&&和是左结合性赋值运算符(低) ⑦、逻辑运算真值表: a b la b a&&b allb 非0 非0 0 0 非0 0 0 0 非0 0 0 0 0 0 0
逻辑运算符和逻辑表达式 一、逻辑运算符 3种: && || ! ①、优先级: !(非)→&&(与)→||(或) ! (非) 算术运算符 关系运算符 && || 赋值运算符 (高) (低) ②、结合性: !是右结合性,&&和||是左结合性 ③、逻辑运算真值表: a b !a !b a&&b a||b 非0 非0 0 0 1 1 非0 0 0 1 0 1 0 非0 1 0 0 1 0 0 1 1 0 0
例 a<b&&xy (a<b)8&(x/y) a==blb=c (a==b)川(b!=c) a>=1!b (a>=1川(!b) 二、逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来构成逻辑表 达式。逻辑表达式的值应该是“逻辑真”或“逻辑假”。 C语言以数值1代表“真”,以数值0代表“假”;但参 加运算的运算量可以是任何数值,进行判断时,非零值代表“ 真”,零值代表“假”。 若a=100,b=5,则!a=?a&&b=?叫b=?a&&b=? 4880|2=?'a+"b!c a"8&"0 3>888215-4-0 心U
例: a<b&&x/y (a<b)&&(x/y) a==b||b!=c (a==b)||(b!=c) a>=1||!b (a>=1)||(!b) 二、逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来构成逻辑表 达式。逻辑表达式的值应该是“逻辑真”或“逻辑假”。 C语言以数值1代表“真”, 以数值0代表“假”;但参 加运算的运算量可以是任何数值,进行判断时,非零值代表“ 真”,零值代表“假”。 若a=100,b=5,则!a=? a&&b=? a||b=? !a&&b=? 4&&0||2=? 'a'+'b' || 'c' 'a' && '\0' 3>8&&2 || 5<4-!0
表示X∈[-1们区间,应写为:x>=1&&x<=1 不能写为:-1<=X<=1 规律: 在逻辑表达式的求解过程中,并不是所有的逻辑运算符都 被执行,只是在必须执行下一个逻辑运算符才能求出表达式的 解时,才执行该运算符。 ①、在&&表达式中,若左端为0,则不必再计算右端, 表达式值为0;即:0880=0例:a=1,b=2,c=3,d=4m=n=1 ②、类似有:1|a==1 (m=a>b)&&(n=c>d) 0|a=a 0&&a==0m=?n=? a 1&&a=a ala==a a&&a==a alla= a&&!a==0 (al|b)==!a&&!b a&&b==lab 心U
表示x∈[-1,1]区间,应写为: x>=-1 && x<=1 不能写为: -1<=x<=1 规律: 在逻辑表达式的求解过程中,并不是所有的逻辑运算符都 被执行,只是在必须执行下一个逻辑运算符才能求出表达式的 解时,才执行该运算符。 ①、在&&表达式中,若左端为0,则不必再计算右端, 表达式值为0;即: 0&&a==0 ②、类似有: 1||a==1 0||a ==a 0&&a==0 1||a==1 1&&a==a a||a==a a&&a==a a||!a==1 a&&!a==0 !(a||b)==!a&&!b !(a&&b)==!a||!b 例:a=1, b=2, c=3, d=4, m=n=1 (m=a>b)&&(n=c>d) m=? n=?
if语句 i语句的三种形式 1、单分支形式 表达式假0) if(表达式) 真(非0) 语句 语句 例: ;y=2 if(x>y printf( odIn,X) printf( %odIn",y); 真表达少概0 2、双分支形式f(表达式) 语句1 语句2 语句1 else 语句2 心U
if 语句 一、if语句的三种形式 1、单分支形式 if (表达式) 语句 表达式 语句 真(非0) 假(0) 例: x=1; y=2; if (x>y) printf("%d\n", x); printf("%d\n", y); 2、双分支形式 if (表达式) 语句1 else 语句2 表达式 语句2 真(非0) 假(0) 语句1
例:if(a>b) if (x>=0) X-a printf( %0.3fn",x); else ese x=b printf(%o.3fn",-x); 3、多分支形式 if(表达式们 例:分段函数 语句1 x(x<1) else if(表达式2) 2x-1 1<x<10) 语句2 3x+5(x else if(表达式3) 语句3 if (X<1) else if(表达式n) else if (x<10 语句n 2*x-1 else eise 语句n+1 y-3*x+5: U
例:if (a>b) x=a; else x=b; if (x>=0) printf("%.3f\n", x); else printf("%.3f\n", -x); 3、多分支形式 if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 …… else if (表达式n) 语句n else 语句n+1 例:分段函数 x 2x-1 3x+5 (x<1) (1≤x<10) (x≥10) y= if (x<1) y=x; else if (x<10) y=2*x-1; else y=3*x+5;