从最基本的层次来说,所有的布尔表达式,不论它的长短如何,其值只能是true或false。
最简单的布尔表达式是等式(equality)。这种布尔表达式用来测试一个值是否与另一个值相同。它可以是一个简单的等式,例如:
2 == 4
上面这个布尔表达式的值是false,因为2和4不相等。它也可以是复杂的等式,如:
MyObject.MyProperty == YourObject.YourProperty
这个等式的值是不确定的,可能取真值也可能取假值,只有在程序运行时才能确定。如果你对C、C++甚至C#比较熟悉的话,就会知道上式中的= = (双等号) 是一个逻辑布尔操作符,而= (单等号)是用来对变量赋值的赋值操作符。程序员有时会将这两个操作符放错位置,这是一个导致程序在编译时或运行时出错的常见原因。
布尔表达式是布尔运算量和逻辑运算符按一定语法规则组成的式子。 n逻辑运算符通常有∧、∨、﹃三种(在某些语言中,还有≡(等价)及→(蕴含)等等);
逻辑运算对象可以是逻辑值(True 或False)、布尔变量、关系表达式以及由括号括起来的布尔表达式。
不论是布尔变量还是布尔表达式,都只能取逻辑值True或False。在计算机内通常用1(或非零整数)表示真值(True),用0表示假值(False)。
关系表达式是形如E1 Rop E2的式子,其中E1和E2为简单算术表达式,Rop 为关系运算符(<, >, =, <=, >=, <> )。若E1和E2之值使该关系式成立,则此关系表达式之值为True ,否则为False 。
布尔表达式的语义在于指明计算一个逻辑值的规则;
布尔表达式在程序设计语言中有两个基本的作用:
一是在某些控制语句中作为实现控制转移的条件;
另一个则是用于计算逻辑值本身。
约定:各类运算符的优先顺序(由高至低)如下:
⒈括号
⒉算术运算符 *(乘法) / (除法) +(加法) -(减法) %(模)(返回一个除法的整数余数,例如:12%5=2,这里是因为12除以5的余数是2)
⒊关系运算符 <(小于)、<=(小于等于)、=(等于)、>(大于)、>=(大于等于)、<>(不等于)
⒋逻辑运算符 ┒ ∧ ∨
3. 布尔表达式的等价解释-求值角度
为了方便起见,下面我们仅讨论由文法
E→ E∧E | E∨E | ┑E | (E) | I | i Rop i (5.1)