定义
如果任一
操作数或两个操作数为true,则逻辑“或”运算符 (||) 返回布尔值
true;否则返回false。操作数在计算之前隐式转换为类型
bool,结果的类型为bool。两个操作数可以是变量、常量和表达式。逻辑“或”具有从左向右的关联性。
or运算符是||的等效文本。
逻辑“或”运算符的操作数不需要是同一类型,但是它们必须是整型或指针类型。操作数通常为关系或相等表达式。
第一个操作数将完全计算,并且在继续计算逻辑“或”表达式之前将完成所有副作用。
仅当第一个操作数的计算结果为 false (0) 时计算第二个操作数。在逻辑“或”表达式为 true 时,这将消除对第二个操作数的不必要的计算。
在决定一事物的若干条件中,只要有一个条件能满足时,结果就会出现;只有当所有条件都不满足是,结果才不出现,这种因果关系就称为“逻辑或”。
如图1所示两个开关并联电灯电路中,两个开关S1、S2中只要有一个闭合时,电灯EL就会亮起;只有两个开关都不闭合,电灯EL才不会亮。
真值表
A或B的真值表(也写作A∨B(逻辑学),A || B(计算机科学),或A + B(电子学))。
运算性质
逻辑或满足以下性质:
结合律: A||(B||C)= (A||B)||C
交换律: A||B = B||A
分配律: A||(B∧C) = ((A||B)∧(A||C))
A∧(B||C) = ((A∧B)||(A∧C))
A||(B=C) = ((A||B)=(A||C))
幂等律: A||A = A
单调性: (A→B)→((C||A)→(C||B))
(A→B)→((A||C)→(B||C))
保真性:所有变量的真值皆为“真”的命题在逻辑或运算后的结果为真。
保假性:所有变量的真值皆为“假”的命题在逻辑或运算后的结果为假。
示例
0 || 0 = 0;
1 || 0 = 1;
0 || 1 = 1;
1 || 1 = 1;
应用拓展
C/C++中|与|| 的区别
(1)||:表示逻辑或
逻辑或,是逻辑运算符,符号是“||”。表示当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。
(2)|:表示按位或
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。
128: (0001 0000 0000)
127: (0000 1111 1111) (高位用0补齐)
按位或就是(0001 1111 1111)=255。
逻辑表达式求值运算
C语言中进行逻辑表达式求值运算,不但要注意
逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:
●对逻辑表达式从左到右进行求解。
●短路原则:在逻辑表达式的求解过程中,任何时候只要逻辑表达式的值已经可以确定,则求解过程不再进行,求解结束。
具体理解逻辑表达式运算规则时,可以采用这样的步骤:
①找到表达式中优先级最低的逻辑运算符,以这些运算符为准将整个逻辑表达式分为几个计算部分。
②从最左边一个计算部分开始,按照算术运算、关系运算和逻辑运算的规则计算该部分的值。每计算完一个部分就与该部分右边紧靠着的逻辑运算符根据真值表进行逻辑值判断。
③如果已经能够判断出整个逻辑表达式的值则停止其后的所有计算;只有当整个逻辑表达式的值还不能确定的情况下才进行下一个计算部分的计算。