zoukankan      html  css  js  c++  java
  • 逻辑运算符学习笔记

    逻辑运算符

    c语言中的逻辑运算符有&&(逻辑与)、||(逻辑非)、!(逻辑或)。其运算规则如下表

    运算符描述实例
    && 如果两个操作数都为真,则条件为真,否则为假。 (A && B) 为假。
    || 如果两个操作数中有任意一个为真,则条件为真,否则为假。 (A || B) 为真。
    ! 用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

    实例

    
    
    #include<iostream>

    using namespace std;

    int main(){
        int a = 1;
        int b = 2;
        int c; 
        if(a && b){
            printf("a&&b为真 ");
        }else{
            printf("a&&b为假 ");
        }
        if(a || b){
            printf("a||b为真 ");
        }else{
            printf("a||b为假 ");
        }
        if(!(a && b)){
            printf("a&&b为真 ");
        }else{
            printf("a&&b为假 ");
        }
        return 0;
    }

    运行结果如下:

    另外值得一提的是逻辑运算符的短路特性,短路特性是指如果能够同过某一个条件得知整个表达式的真假情况,将不再进行下一步的运算,比如说a&&b,如果a为假,则整个式子为假,将不再对b进行判断。

    实例:

    #include<stdio.h>
    
    int main(){
        printf("%d
    ",3/0);
        return 0;
    }
    

      运行上面代码,编译器会报错:

    "message": "division by zero [-Wdiv-by-zero]"

    意思是0不能被用来当除数

    而运行下面代码:

     1 #include<stdio.h>
     2 
     3 int main(){
     4     int a = 0;
     5     int b = 2;
     6     if(a && (b/0)){
     7         printf("yes
    ");
     8     }else{
     9         printf("no
    ");
    10     }
    11     return 0;
    12 }

    得到的结果为:

     通过了编译,证明了逻辑运算符的短路特性。当然逻辑或同理。

    以上就是我对逻辑运算符的一些认识,如果错误之处,敬请指正。

  • 相关阅读:
    红黑树深入剖析及Java实现
    Innodb中的事务隔离级别和锁的关系
    从实际案例聊聊Java应用的GC优化
    Java HotSpot VM Options 参数设置
    jvm 字节码查看
    JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
    jsp 预编译
    MySQL中有关TIMESTAMP和DATETIME的总结
    MySQL 索引及优化实战
    spring boot 配置https 报这个错误:java.lang.IllegalArgumentException: Private key must be accompanied by certificate chain
  • 原文地址:https://www.cnblogs.com/ma-liner/p/11519300.html
Copyright © 2011-2022 走看看