欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

不是Python,也不是其它语言?了解或且非(or)和且(and)运算符的用法

最编程 2024-01-16 16:28:39
...


C语言中的逻辑运算符有&&||、及,他们分别被称为逻辑与逻辑或逻辑非前两者是二元运算符,逻辑非是一元运算符


1.逻辑与运算符 `&&`


  • 逻辑与运算符的基本语法是:表达式1 && 表达式2
  • 其求值的结果规则是:
    (1)当两个表达式均为非0时,求值结果为1
    (2)其他情况(只要有至少一个表达式为0),求值结果为0

实例:判断一个数字既可以被5整除又可以被7整除

#include <stdio.h>

int main(int argc, char* argv[])
{
    int nValue = 0;
    scanf("%d", &nValue);

    if (nValue % 5 == 0 && nValue % 7 == 0)
    {
        printf("这个数字既可以被5整除,也可以被7整除\r\n");
    }
 return 0;
}


2.逻辑或运算符`||`


  • 逻辑或运算符的基本语法是:表达式1 || 表达式2
  • 其求值的结果规则是:
    (1)当两个表达式均为0时,求值结果为0
    (2)其他情况(只要有至少一个表达式为非0),求值结果为1

实例:判断一个年份,是否为闰年,判断闰年的标准是:能被100整除,同时能被400整除;或者不能被100整除,但是能被4整除

#include <stdio.h>

int main(int argc, char* argv[])
{
    int nYear = 0;
    scanf("%d", &nYear);

    //能被100整除,同时能被400整除
    // nYear % 100 == 0 && nYear % 400 == 0

    //不能被100整除,但是能被4整除
    // nYear % 100 != 0 && nYear % 4 == 0

    if (
        (nYear % 100 == 0 && nYear % 400 == 0)
        || (nYear % 100 != 0 && nYear % 4 == 0)
        )
    {
        printf("这个是闰年\r\n");
    }
    else
    {
        printf("不是闰年\r\n");
    }
    return 0;
}


3.逻辑非运算符`!`


  • 逻辑非就是将表达式结果“反置”,其基本语法是:!原表达式
  • 其求值规则是:
    (1)如果原表达式为0,则求值后结果为1
    (2)如果原表达式结果为非0,则求值后结果为0

实例:

#include <stdio.h>

int main(int argc, char* argv[])
{
    int nValue = 0;
    scanf("%d", &nValue);

    printf("原有表达式的值:%d\r\n", nValue);
    nValue = !nValue;
    printf("逻辑取反后的表达式的值:%d\r\n", nValue);
 return 0;
}

运行结果:

或且非python 或且非的表示符号_后端


4.逻辑运算符的短路特点



先看一段代码,推测以下代码的打印结果:


#include <stdio.h>

int main(int argc, char* argv[])
{
    (printf("Hello, world!\r\n") ) || (printf("something else\r\n!"));
 return 0;
}

运行结果:

或且非python 或且非的表示符号_开发语言_02


实际上,这样的打印结果,与逻辑运算符的短路特性有关。

简单总结如下:
(1)如果||运算符左边的表达式为真(非0),则右边的表达式不再执行
(2)如果&&运算符左边的表达式为假(0),则右边的表达式不再执行


推荐阅读