2.注意事项(1)关系运算是二元运算,对两个值进行大小比较(2)任意类型的表达式都可以参加比较运算若有下面的定义:intm,n;int a =l, b = 2;floaty=5,z;举则下列的表达式都是合法的:5>3/*两个初级表达式(常量)比较*/y<= 3/*两个初级表达式(变量和常量)比较*/例2*a==y+3/*两个二元表达式进行比较*/--a >= b++/*一元表达式与后缀表达式进行比较*/(m = 4) >= (n = 3)/*两个赋值表达式进行比较*/(a > 5)(y>3)</*两个关系表达式进行比较*/
举 例 (1)关系运算是二元运算,对两个值进行大小比较 2.注意事项 (2)任意类型的表达式都可以参加比较运算 若有下面的定义: int m, n; int a = 1, b = 2; float y = 5, z; 则下列的表达式都是合法的: 5 > 3 /* 两个初级表达式(常量)比较 */ y <= 3 /* 两个初级表达式(变量和常量)比较 */ 2 * a == y + 3 /* 两个二元表达式进行比较 */ -a >= b++ /* 一元表达式与后缀表达式进行比较 */ (m = 4) >= (n = 3) /* 两个赋值表达式进行比较 */ (y > 3)< (a > 5) /* 两个关系表达式进行比较 */
(3)运算的结果若为“真”则值是1;若为“假”则值是0若有下面的定义:inta=3,b=2,x=5;举则下列的表达式:5>3结果为“真”值为1例X<=3结果为“假”值为0值为1结果为“真”--a >= b++(4前四个的优先级高于后两个,结合性都是左结合(5)不可以简单地通过几个连续的关系运算来构建复杂的条件举例3>x>5不能表示xE(3,5)
举 例 (3)运算的结果若为“真”则值是1;若为“假”则值是0 若有下面的定义: int a = 3,b = 2, x = 5; 则下列的表达式: 5 > 3 结果为“真” → 值为 1 x <= 3 结果为“假” → 值为 0 -a >= b++ 结果为“真” → 值为 1 (4)前四个的优先级高于后两个,结合性都是左结合 (5)不可以简单地通过几个连续的关系运算来构建复杂的条件 举 例 3 > x > 5 不能表示x∈(3,5)
逻辑运算3. 1.31.逻辑运算概述逻辑运算是对逻辑值进行的运算C中有3种逻辑运算表3-2逻辑运算符含义运算符优先级151逻辑非0&&逻辑与4II逻辑或
逻辑运算是对逻辑值进行的运算 3.1.3 逻辑运算 1.逻辑运算概述 C中有3种逻辑运算 表3-2 逻辑运算符
2.几点说明(1)逻辑运算的结果是逻辑值!x的值Ix的结果X0假非0值10真逻辑非()xxily的结果xly的值yx&&y的值xyx&&y的结果000000假真真真假1000假假非0值非0值010非0值非0值011非0值非0值真非0值非0值逻辑与(&&)逻辑或(II)
(1)逻辑运算的结果是逻辑值 2.几点说明 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1 x 非0值 0 !x的结果 假 真 !x的值 0 1 逻辑非(!) y 0 非0值 0 非0值 x&&y的结果 假 假 假 真 逻辑与(&&) x 0 0 非0值 非0值 x&&y的值 0 0 0 1 y 0 非0值 0 非0值 x||y的结果 假 真 真 真 逻辑或(||) x 0 0 非0值 非0值 x||y的值 0 1 1 1
(2任意类型的表达式都可以参加逻辑运算若有下面的定义:int a =0, b = 13;floaty=-3.14;char c= “A' ;举则下列的表达式都是合法的:!5值为0结果为“假”!a值为1结果为“真例!y值为0结果为“假值为0! (b% 2)结果为“假”值为1结果为“真”a>=0&&a<3结果为“真”一值为(c>=a&&c<=z) //(c>=A&&c<=Z)
举 例 (2)任意类型的表达式都可以参加逻辑运算 若有下面的定义: int a = 0, b = 13; float y = -3.14; char c = ‘A’; 则下列的表达式都是合法的: !5 结果为“假” → 值为0 !a 结果为“真” → 值为1 !y 结果为“假” → 值为0 !(b % 2) 结果为“假” → 值为0 a >= 0 && a < 3 结果为“真” → 值为1 (c>=‵a‵&&c<=‵z‵)||(c>=‵A‵&&c<=‵Z‵) 结果为“真”→值为1