清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关 系表达式、逻辑表达式、赋值表达 式、字符表达式)连接起来的式子,称关系表达式。 例如,下面都是合法的关系表达式: a>b,a+b>b+c, (a=3)>(b=5), 'a'< 'b',(a>b)>(b<c) 关系表达式的值是一个逻辑值,即“真”或 “假”。例如,关系表达式“5==3”的值为“假”, “5>=0”的值为“真”。c语言没有逻辑型数据 Pascali语言以True表示“真”,以false表示 “假”。PascaL和FORTRAN等语言都有逻辑型 变量和逻辑型常
5.1.2 关系表达式 用关系运算符将两个表达式(可以是算术表达式或关 系表达式、逻辑表达式、赋值表达 式、字符表达式)连接起来的式子,称关系表达式。 例如,下面都是合法的关系表达式: a>b, a+b>b+c, (a=3)>(b=5), 'a'< 'b', (a>b)>(b<c) 关系表达式的值是一个逻辑值,即“真”或 “假”。例如,关系表达式“5==3”的值为“假”, “5>=0”的值为“真”。c语言没有逻辑型数据 (Pascal语言以True表示“真”,以false表示 “假”。PascaL和FORTRAN等语言都有逻辑型 变量和逻辑型常
清华大学出版社 TSINGHUA UNIVERSITY PRESS 量),以1代表“真”,以“0”代表“假”。例如, a=3,b=2,c=1,则: 关系表达式“a>b”的值为“真”,表达式的值为1。 关系表达式“(a>b)==c”的值为“真”(因为a>b的 值为1,等于c的值),表达式的值为1。 关系表达式“b十c<a”的值为“假”,表达式的值 为0。 如果有以下赋值表达式: d=a>bd的值为1。 f=a>b>cf的值为0(因为“>”运算符是自左至右 的结合方向,先执行“a>b”得值为1,再执行关 系运算“1>c”,得值0,赋给)
量),以1代表“真”,以“0”代表“假”。例如, a=3,b=2,c=1,则: 关系表达式“a>b”的值为“真”,表达式的值为1。 关系表达式“(a>b)==c”的值为“真”(因为a>b的 值为1,等于c的值),表达式的值为1。 关系表达式“b+c<a”的值为“假”,表达式的值 为0。 如果有以下赋值表达式: d=a>bd的值为1。 f=a>b>cf的值为0 (因为“>”运算符是自左至右 的结合方向,先执行“a>b”得值为1, 再执行关 系运算“1>c”,得值0,赋给f)
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.2逻辑运算符和逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来 的式子就是逻辑表达式。在basicz和Pascali语言 中有以下形式的逻辑表达式(AND是逻辑运算 符): (a>b)AND(x>y) 如果a>b且x>y,则上述逻辑表达式的值为 “真”。下面介绍c语言中的逻辑运算符和逻 辑运算。 5.2.1逻辑运算符及其优先次序 C语言提供三种逻辑运算符:
用逻辑运算符将关系表达式或逻辑量连接起来 的式子就是逻辑表达式。在basic和Pascal语言 中有以下形式的逻辑表达式(AND是逻辑运算 符): (a>b)AND(x>y) 如果a>b且x>y,则上述逻辑表达式的值为 “真”。下面介绍c语言中的逻辑运算符和逻 辑运算。 5.2.1 逻辑运算符及其优先次序 C语言提供三种逻辑运算符: 5.2 逻辑运算符和逻辑表达式
清华大学出版社 TSINGHUA UNIVERSITY PRESS ()&&逻辑与(相当于其他语言中的aND) (2)I逻辑或(相当于其他语言中的0R) (3)!逻辑非(相当于其他语言中的NOT) “&&”和“”是“双目(元)运算符”,它要求有两个 运算量(操作数),如(a>b)&&(>y),(a>b川(x> y)。“”是“一目(元)运算符”,只要求有一个运 算量,如(a>b)。 逻辑运算举例如下: a&&b若a、b为真,则a&&b为真。 ab若a、b之一为真,则ab为真。 !a若a为真,则a为假
(1) &&逻辑与(相当于其他语言中的aND) (2) || 逻辑或(相当于其他语言中的OR) (3) ! 逻辑非(相当于其他语言中的NOT) “&&”和“||”是“双目(元)运算符”,它要求有两个 运算量(操作数),如(a>b)&&(x>y),(a>b)||(x> y)。 “!”是“一目(元)运算符”,只要求有一个运 算量,如(a>b)。 逻辑运算举例如下: a&&b若a、b为真,则a&&b为真。 a||b 若a、b之一为真,则a||b为真。 !a 若a为真,则!a为假
清华大学出版社 TSINGHUA UNIVERSITY PRESS 在一个逻辑表达式中如果包含多个逻辑运算符,如 !a &&blxy &&c 按以下的优先次序: (1):(非)→&&(与)(或),即“!”为三者中最高的。 (2)逻辑运算符中的“&&”和“”低于关系运算符, “!”高于算术运算符。见图5.2。 (非) (高) 算术运算符 关系运算符 &&和川 赋值运算符 (低) 图5.2
在一个逻辑表达式中如果包含多个逻辑运算符,如 !a && b||x>y && c 按以下的优先次序: (1) !(非)→&&(与)→(或), 即“!”为三者中最高的。 (2) 逻辑运算符中的“&&”和“||”低于关系运算符, “!”高于算术运算符。见图5.2。 图5.2