逻辑与、或和条件与、或

今天在看先看一个问题的时候,发现了有人问判断条件里为什么不用 & 和 | ?只记得以前学习C的时候,老师就说条件判断要用 || 和 && ,而不是 | 和&,也就一直这么用了。

我们知道逻辑与或是逻辑运算符,那么既然是运算符,那肯定是有运算结果的;而条件判断也是一种运算,只不过它的结果只有true和false,也就是对应1和0。既然逻辑运算结果包含0和1,那么某些情况下,逻辑与或也可用于条件判断,所以才会有此一问。再换句话说,条件与或其实就是只有0和1的逻辑与或运算,而且其实在电路层面条件判断就是用逻辑运算实现。写个栗子:

#include <iostream>
#include <iomanip>
using namespace std;

#define out(NUM) cout <<setw(NUM) <<setiosflags(ios::left)

int main()
{
    int a, b;
    bool tem1, tem2;
    a = 1; b = 2;
    tem1 = true; tem2 = false;

    out(6) <<"a&b: " <<(a&b) <<endl;
    out(6) <<"a&&b: " <<(a&&b) <<endl;
    out(6) <<"a|b: " <<(a|b) <<endl;
    out(6) <<"a||b: " <<(a||b) <<endl;

    out(10) <<"tem1&tem2: " <<(tem1&tem2) <<endl;
    out(10) <<"tem1&&tem2:" <<(tem1&&tem2) <<endl;
    out(10) <<"tem1|tem2: " <<(tem1|tem2) <<endl;
    out(10) <<"tem1||tem2:" <<(tem1||tem2) <<endl;
    return 0;
}

结果如下:

总结:

1. 当只有bool类型时,逻辑与或和条件与或结果一致,可以使用逻辑与或进行条件判断

2. 上述情况可以,但没必要。条件与或是依次匹配的,很多时候不必把所有的结果都运算出来就可以判断结果了,比如 1 || XXX,还有 0 && XXX;如果是逻辑运算,那么它的判断条件是运算结果,则必须要计算出结果来,1 | X | X | X | X...,白白浪费计算力。

ps: 很简单,其实就是不想干活了,就跑来瞎写写。磕盐要加糖,我们都一样。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值