山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
有时要求判断的条件不是一个简单的条件,而是由几个给定简单条件组成的复合条如:“如果星期六不下雨,我去公园玩”。这就是由两个简单条件组成的复合条件,需要判定两个条件:
( 1 )是否星期六;
( 2 )是否下雨。
只有这两个条件都满足,才去公园玩。
又如“参加少年运动会的年龄限制为13 ~17岁”,这就需要检查两个条件:
( 1 )年龄age≥13,
( 2 )年龄age < 17。
这个组合条件是不能够用一个关系表达式来表示的,要用两个表达式的组合来表示,
即age > = 13 AND age < = 17,用一个逻辑运算符AND连接age > = 13和age < = 17。
两个关系表达式组成一个复合条件。
“AND”的含义是“与”,即“二者同时满足”。
age > = 13 AND age < = 17表示age > = 13和age < = 17同时满足。这个复合的关系表达式“age > = 13 AND age < = 17”就是一个逻辑表达式。其他逻辑表达式可以有:
x > 0 AND y > 0(同时满足x > 0和y > 0)
age < 12 OR age > 65(表示年龄age小于12的儿童或大于65的老人)
上面第1个逻辑表达式的含义是:只有x > 0和y > 0都为真时,逻辑表达式x > 0 ANDy > 0才为真。上面第2个逻辑表达式的含义是:age < 12或age > 65至少有一个为真时,逻辑表达式age < 12 OR age > 65为真。
OR是“或”的意思,即“有一即可”,在两个条件中有一个满足即可。AND和OR是逻辑运算符。用逻辑运算符将关系表达式或其他逻辑量连接起来的式子就是逻辑表达式。
逻辑运算符及其优先次序
有3种逻辑运算符:与( AND ),或( OR ),非( NOT )。在BASIC和Pascal等语言中可以在程序中直接用AND,OR,NOT作为逻辑运算符。在C语言中不能在程序中直接用AND,OR,NOT作为逻辑运算符,而是用其他符号代替。
逻辑运算符及其含义运算符含义如下表:
“&&”和“||”是双目(元)运算符,它要求有两个运算对象(操作数),如
(a > b)&& ( x > y ),( a > b ) || ( x > y )。
“!”是单目运算符,只要求有一个运算对象,如
! ( a > b )。
下表为逻辑运算的真值表。用它表示当a和b的值为不同组合时,各种逻辑运算所得到的值。
在一个逻辑表达式中如果包含多个逻辑运算符,按以下的优先次序:
( 1 ) ! (非)→&& (与)→||(或),即“!”为三者中最高的。
( 2 )逻辑运算符中的“&& ”和“||”低于关系运算符,“!”高于算术运算符。