0
点赞
收藏
分享

微信扫一扫

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

GhostInMatrix 2022-02-15 阅读 65
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;
}

会是怎样的结果?

afalse

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

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 条评论