C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

5.5.2 逻辑表达式

“逻辑与”相当于我们日常生活中说的“并且”,就是在两个条件都成立的情况下“逻辑与”的运算结果才为“真”。“逻辑或”相当于生活中的“或者”,就是当两个条件中有任何一个条件满足时,“逻辑或”的运算结果就为“真”。“逻辑非”相当于生活中的“不”,就是当一个条件为真时,“逻辑非”的运算结果为“假”。

看表5-2中a和b之间的逻辑运算,在此假设a=5,b=2。

表5-2 逻辑运算

从表5-2所示运算结果可以得出如下规律。

(1)在进行与运算时,只要参与运算的两个对象中有一个是假的,则结果就为假。

(2)在进行或运算时,只要参与运算的两个对象中有一个是真的,则结果就为真。

实例5-6

对变量进行逻辑运算处理,并输出运算后的结果

源码路径daima\5\5-6

本实例的实现文件为“luoji.c”,具体实现代码如下。

    #include <stdio.h>
    int main(void){
        //声明变量并定义初值
        int a=10, b=15, c=20;
        float x=12.345, y=0.1234;
        char ch='x';
        //将各变量进行逻辑运算,并输出结果
        printf("%d, %d\n", x*! y, ! ! ! x);
        printf("%d, %d\n", x||a&&b<c, a+3>b&&x<y);
        printf("%d, %d\n", a==4&&! ch&&(b=9), x+y||a+b||c);
    }

拓展范例及视频二维码

范例5-6-01:使用逻辑运算符

源码路径:演练范例\5-6-01\

范例5-6-02:演示逻辑运算符的特性

源码路径:演练范例\5-6-02\

上述代码的具体实现流程如下所示。

(1)分别定义整型变量a、b和c的初始值。

(2)定义单精度型变量x和y的初始值。

(3)设置字符型变量ch值为x的值。

(4)计算表达式x*!y和!!!x,并输出结果。

(5)计算表达式x||a&&b<c, a+3>b&&x<y,并输出结果。

(6)计算表达式a==4&&! ch&&(b=9), x+y||a+b||c,并输出结果。

程序运行后将分别输出运算结果,执行效果如图5-6所示。

图5-6 执行效果

在实际应用中,使用逻辑表达式的一般形式如下。

    表达式 逻辑运算符 表达式

其中,“表达式”可以是逻辑表达式,从而组成了嵌套的情形。例如:

    (a&&b)&&c

根据逻辑运算符的向左结合性,上式也可写为a&&b&&c。逻辑表达式的值是式中各种逻辑运算的最终值,以“1”和“0”分别代表“真”和“假”。