3.1.3 逻辑运算符

在C语言中,逻辑运算符的功能是实现数据间的逻辑运算操作。其中,常用的逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。逻辑运算后的结果只有两个,真或假。使用不同的逻辑运算,所得到的结果也是不相同的。在本小节中,将介绍各种逻辑运算符的功能及其使用方法等。

1.逻辑运算符的功能及其使用格式

在实际编程时,逻辑运算符会根据参与运算的两个变量值相同或者不同,而返回不同的逻辑运算结果。由于参与逻辑非运算的变量只能有一个,所以具体的逻辑运算规则也会有所不同,如表3.1和表3.2所示。

表3.1 逻辑与和逻辑或的运算规则

表3.2 逻辑非的运算规则

表3.1中列出了逻辑与和逻辑或运算符,根据不同的变量将得到不同的运算结果。一般情况下,在逻辑或运算中,只要参与运算的变量中有一个为真,即1,则逻辑或运算的结果就为真。而在逻辑与运算中,只有参与运算的变量都为真,则逻辑与运算的结果才为真。否则,逻辑运算后的结果都为假,即0。

注意 在逻辑运算中,数字1表示真,而数字0则表示假。

在表3.2中列出了逻辑非运算符的运算规则。根据运算规则,逻辑非运算的实质就是将参与运算的变量进行反向取值。例如,参与运算的变量为真,则通过逻辑非运算后,其结果应该为假。基本了解了常用逻辑运算符的功能后,就可以在程序中使用这些逻辑运算符实现相应的功能。其具体的使用格式如下:

数据1&&数据2;//逻辑与运算符的使用格式
数据1||数据2;//逻辑或运算符的使用格式
!数据1;//逻辑非运算符的使用格式

注意 在实际编程时,一定要严格按照逻辑运算符的使用格式编写程序。否则,程序运行后,将不能实现预期的功能。

2.逻辑运算符实例程序

通过前一小节对逻辑运算符的学习,读者应该掌握了逻辑运算符的相关功能和使用方法。这样,在实际编程时,可以直接使用这些逻辑运算符实现其相应的功能。例如,使用常用的逻辑运算符,可以非常方便地判断两个数据是否相同,并且根据判断结果输出提示语。具体的代码如下:

#include <stdio.h>//包含头文件
main()//主函数开始
{
    char c1='M';//定义并初始化字符变量
    char c2='M';
    char c3='n';
    if(c1=='M'&&c2=='M')//通过逻辑与运算判断是否相同
    {
    printf("通过逻辑与运算,其结果是数据c1和c2的值是相同的!"); //输出判断结果
    }
    if(c2=='M'&&c3=='n')//判断
    {
    printf("通过逻辑与运算,其结果是数据c2和c3的值是不相同的!"); //输出提示语
    }
    if(c1=='M'||c2=='M')//使用逻辑或运算符判断数据相同
    {
    printf("通过逻辑或运算,其结果是数据c1和c2的值是相同的!"); //输出提示语
    }
    if(c2=='M'||c3=='n')
    {
    printf("通过逻辑或运算,其结果是无法判断数据c2和c3的值是否相同!");//输出提示语
    }
    return 0;//程序正常结束
}

在实例程序中,分别使用逻辑与和逻辑或运算符对字符变量c1、c2和c3的值进行了判断。程序运行后,将根据判断结果输出不同的提示语,如图3.6所示。程序将根据逻辑运行的结果,输出相应的提示语。但是,对于逻辑或运算而言,当出现不同的运算条件时,其运算后的结果是不能够准确判断的。

图3.6 程序运行结果

注意 实际编程时,也可以将参与逻辑运算的逻辑值直接设置为真或者假。当然,也可以是复杂的表达式。