Jupyter AI

14 运算符与表达式之逻辑运算符

📅 发表日期: 2024年8月10日

分类: 💻C++ 入门

👁️阅读: --

在前一篇中,我们介绍了关系运算符,它们用于比较两个操作数的大小关系,并返回布尔值(truefalse)。本篇将进一步讲解逻辑运算符,它们在控制程序流和条件判断中发挥着重要作用。逻辑运算符的主要员工是连接多个布尔表达式,以产生单一的布尔结果。我们将了解三种主要的逻辑运算符:&&(逻辑与),||(逻辑或)和!(逻辑非)。

逻辑与:&&

逻辑与运算符(&&)会在两个条件都为真时返回真。换句话说,只有当两个条件都为true时,结果才为true。如果任一条件为false,结果则为false

示例

#include <stdio.h>

int main() {
    int a = 5, b = 10;
    
    // 判断条件
    if (a < 10 && b > 5) {
        printf("条件成立:a 小于 10 并且 b 大于 5\n");
    } else {
        printf("条件不成立\n");
    }
    
    return 0;
}

在上述代码中,当a小于10且b大于5时,控制台将输出“条件成立”。如果我们将b改变为2,结果将为“条件不成立”。

逻辑或:||

逻辑或运算符(||)在至少一个条件为真时返回真。只要其中一个条件为true,结果就为true,仅在所有条件都为false时结果才为false

示例

#include <stdio.h>

int main() {
    int a = 5, b = 10;
    
    // 判断条件
    if (a > 10 || b > 5) {
        printf("条件成立:a 大于 10 或者 b 大于 5\n");
    } else {
        printf("条件不成立\n");
    }
    
    return 0;
}

在这个例子中,由于b大于5,控制台将输出“条件成立”。即使a不大于10,只要满足任一条件就可以。

逻辑非:!

逻辑非运算符(!)用于反转布尔值。如果条件为真,使用逻辑非将更改为假;反之亦然。

示例

#include <stdio.h>

int main() {
    int a = 5;
    
    // 判断条件
    if (!(a > 10)) {
        printf("条件成立:a 不大于 10\n");
    } else {
        printf("条件不成立\n");
    }
    
    return 0;
}

在这里,!(a > 10)的结果为true,因为a确实不大于10,因此控制台输出“条件成立”。

逻辑运算符的结合使用

逻辑运算符可以结合使用来构建复杂的条件判断。

示例

#include <stdio.h>

int main() {
    int a = 5, b = 10, c = 15;
    
    // 判断多个条件
    if ((a < 10 && b > 5) || (c > 20 && a > 0)) {
        printf("条件成立:至少一个复杂条件为真\n");
    } else {
        printf("条件不成立\n");
    }
    
    return 0;
}

在这个示例中,尽管c > 20false,但由于第一个条件(a < 10 && b > 5)true,因此整个条件表达式评估为true,控制台输出“条件成立”。

总结

逻辑运算符在条件判断和控制流程中非常重要。通过使用逻辑与&&、逻辑或||和逻辑非!,我们可以构建复杂的逻辑条件,控制程序的执行路径。

在下一篇文章中,我们将探讨位运算符,了解如何直接操作数据的二进制位。

💻C++ 入门 (滚动鼠标查看)