`a&&b&&c`和`a||b||c`有什么区别?

a&&b&&ca||b||c有什么区别?

看看例子

int main(){
    bool a=true,b=false,c=true;
    if(a&&b&&c){
        cout<<"a&&b&&c=true"<<endl;
    }else{
        cout<<"a&&b&&c=false"<<endl;
    }
    
    return 0;
}

会是怎样的结果?

a&&b&&c=false

如果三个都为真,那么输出结果一定是真;三个当中若有一个是假,那么输出结果为假。

int main(){
    bool a=false,b=false,c=true;
    if(a||b||c==true){
        cout<<"a||b||c=true"<<endl;
    }else{
        cout<<"a||b||c=false"<<endl;
    }
    
    return 0;
}

那一定是真的啦!


a&&b&&c
当a为0时,表达式为0,不必求b与c。

a||b||c
当a为1时,表达式为1,不必求b与c。

什么意思?举个例子

int main(){
    int a=0,b=1,c=2;
    int d=(a||b+c&&b==c);
    cout<<d<<endl;
}

注意一下,&&的优先级要高与||&&有点类似于*||类似于+。逻辑运算符里!的优先级最高。

我们分析一下,a||b+c&&b0||1+2&&1&&优先级最高,看b+c&&b值代入算1+2&&1为1,然后a||1代入算0||1为1,最终结果为1

举一反三:

int main(){
    int a=0,b=1,c=2;
    int d=(a&&b+c&&b==c);
    cout<<d<<endl;
}

a&&b+c&&b代入算0&&3&&1,结果为0.

优先级顺序:算术运算符最高,关系运算符次之,逻辑运算符最低。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值