3.非逻辑值运算对象的真/假判定一0和非0 逻辑运算的对象要求是逻辑值,而C语言中没有 逻辑型数据。 C语言约定: 0,判定为“逻辑假” 非逻辑值运算对象= 非0,判定为“逻辑真” 2024/10/28 11
2024/10/28 11 3.非逻辑值运算对象的真/假判定──0和非0 逻辑运算的对象要求是逻辑值,而C语言中没有 逻辑型数据。 C语言约定: 0,判定为“逻辑假” 非逻辑值运算对象= 非0,判定为“逻辑真
假设num=12,则: (1)!num:=0 (2)(num>=1)&&(num<←31):=1 (3)num‖(num>31):=1。 2024/10/28 12
2024/10/28 12 假设num=12,则: (1)!num: =0 (2) (num >= 1) && (num <= 31) :=1 (3) num || (num > 31) := 1
4.说明 (1)运算对象的数据类型:除整型外,也可以是实 型、字符型等其它任何类型数据。 (2)子表达式计算:只有在必须计算下一个子表达 式才能求解时,才计算;否则,不再计算。 换句话说: ①对于逻辑与运算,如果第1个对象被判定为 “逻辑假”,系统不再计算第2个对象(因为无论真假,都 不影响整个表达式的结果)。 2024/10/28 13
2024/10/28 13 4.说明 (1)运算对象的数据类型:除整型外,也可以是实 型、字符型等其它任何类型数据。 (2)子表达式计算:只有在必须计算下一个子表达 式才能求解时,才计算;否则,不再计算。 换句话说: ①对于逻辑与运算,如果第1个对象被判定为 “逻辑假” ,系统不再计算第2个对象(因为无论真假,都 不影响整个表达式的结果)
②对于逻辑或运算,如果第1个对象被判定为 “逻辑真”,系统不再计算第2个对象。 思考:假设n1、n2、n3、n4、x、y的值分别 为1、2、3、4、1、1,求解表达式"(x=n1>n2) &&(y=n3>n4)”后,X、y的值=? 2024/10/28 14
2024/10/28 14 ②对于逻辑或运算,如果第1个对象被判定为 “逻辑真” ,系统不再计算第2个对象。 思考:假设n1、n2、n3、n4、x、y的值分别 为1、2、3、4、1、1,求解表达式“(x = n1 > n2) && (y = n3 > n4)”后,x、y的值=?
答案: x=0,y=1 分析: (1)nl>n2:=0 (2)x=nl>n2:x=0 (3)(x=nl>n2):=0 (4)&&:(y=n3>n4)不再计算,y保持原值,即 y=1。 返回山 2024/10/28 15
2024/10/28 15 答案: x=0,y=1 分析: (1) n1 > n2: = 0 (2) x = n1 > n2 :x = 0 (3) (x = n1 > n2) := 0 (4) &&:(y = n3 > n4) 不再计算,y保持原值,即 y=1。 [返回]