C语言 逻辑运算符

本文 我们来说 逻辑运算符

有时做出决策需要测试多个条件,C语言提供了用于将简单条件组合成复杂条件的逻辑运算符。
逻辑运算符
如下图
在这里插入图片描述
用逻辑运算符连接操作数组成的表达式称为逻辑表达式。
逻辑运算的结果只有0和1
逻辑运算的对象可以是任意数值型,但编译器将所有非0值都视为:真(1)。
觉得举个例子
我们编写代码如下

#include <stdio.h>

int main() {
    if (4&&5) {
        printf("条件成立");
    }

    return 0;
}

运行结果如下
在这里插入图片描述
这里 我们if中 写的 是 4且5 它们并不产生逻辑判断关系 但 表达式 将 4 读成了 非0 就为1 后面的5也同理被读成了 1
两个值都是 1 条件真 自然 if就成立 执行了

逻辑 或 运算符的特点
它需要 || 的左右条件都不成立时 总条件才为 假 只要其中任何一个条件成立 返回的条件就是真

例如 我们这样写

#include <stdio.h>

int main() {
    if ((1 == 5) || (1 == 1)) {
        printf("条件成立了");
    }

    return 0;
}

我们 第一条件 1 等等于 5 显然会返回0 条件不成立(假) 而 第二个 1 等等于 1 显然是成立的 条件返回真
运行结果如下
在这里插入图片描述
因为我们用的是 或运算符 所以 只要有一个成立 总条件就是真
而且不止两个
我们可以

#include <stdio.h>

int main() {
    if ((1 == 5) || (1 == 1) || (1 == 7) || (1 == 8)) {
        printf("条件成立了");
    }

    return 0;
}

运行之后 依旧是 某一个成立 整个条件全部成立
在这里插入图片描述
但如果条件全部不成立 例如

#include <stdio.h>

int main() {
    if ((1 == 7) || (1 == 8)) {
        printf("条件成立了");
    }

    return 0;
}

自然就是啥都没有啦
在这里插入图片描述
然后 逻辑 非 !
意思就是取反

例如 我们这样

#include <stdio.h>

int main() {
    if (!(1 == 7)) {
        printf("条件成立了");
    }

    return 0;
}

1 显然 无法等等于 7 所以 感叹号后面的条件是无法成立的
但非符号取反 我们运行
在这里插入图片描述
条件就成立了

意思 就是反过来 然后 我们这样写

#include <stdio.h>

int main() {
    if (!(1 == 1)) {
        printf("条件成立了");
    }

    return 0;
}

我们 1 等等于 1 显然 成立
我们运行代码 取反
条件就不成立了
在这里插入图片描述
最后 且 && 就是 所有的条件都必须成立 总条件才会成立 否则 整个条件返回的就是 条件 0(假)

我们这样写

#include <stdio.h>

int main() {
    if ((1 == 1)&&(2 == 2) && (3 == 3)) {
        printf("条件成立了");
    }

    return 0;
}

显然 我们全部条件都是成立的
运行代码
在这里插入图片描述
我们这里 稍稍改一下 将 最后一个3改成4 如下图
在这里插入图片描述
运行代码

因为 其中包含不成立的条件 因此 整个表达式是结果就是 0 (假)
在这里插入图片描述
运算符 非的优先级最高 然后 且的优先级高于或

常见运算符 优先级如下
在这里插入图片描述
记不住这些优先级:使用 小括号会帮助达到更清晰的表示运算次序关系。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值