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 (假)
在这里插入图片描述
运算符 非的优先级最高 然后 且的优先级高于或

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/1306.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMWare Ubuntu压缩虚拟磁盘

VMWare中ubuntu会越用越大&#xff0c;直到占满预分配的空间 即使系统里没有那么多东西 命令清理 开机->open Terminal sudo vmware-toolbox-cmd disk shrink /关机-> 编辑虚拟机设置->硬盘->碎片整理&压缩 磁盘应用 开机->disk usage analyzer(应用) …

Springboot+Vue项目-基于Java+MySQL的影城管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

SQL语句每日一练十

586. 订单最多的客户 题目 表: Orders --------------------------- | Column Name | Type | --------------------------- | order_number | int | | customer_number | int | --------------------------- 在 SQL 中&#xff0c;Order_number是该表的…

苹果 IPA 应用部署软件 iMazing 3 Windows 版获 3.0.0.4 Beta 4

在数字化时代&#xff0c;我们的iOS设备已经成为生活中不可或缺的一部分。为了更加高效、便捷地管理这些设备&#xff0c;iMazing 3.0.0.3 应运而生&#xff0c;它以其独特的功能和卓越的性能&#xff0c;为用户带来了前所未有的全新体验。 首先&#xff0c;iMazing 3.0.0.3 提…

2024第二十一届五一数学建模B题思路 五一杯建模思路

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

Rust面试宝典第6题:快乐数

题目 编写一个算法,判断一个数n是不是快乐数。快乐数的定义如下: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是无限循环,但始终变不到1。如果这个过程的结果为1,那么这个数就是快乐数。如果n是快乐数 就返回…

机器学习-随机森林算法预测房租模型

文章目录 机器学习-随机森林算法预测房租模型解决问题数据集探索性数据分析数据预处理构建模型并训练结果分析与评估参数调优结果预测模型保存经验总结参考文章 机器学习-随机森林算法预测房租模型 解决问题 根据待租房源相关信息&#xff0c;通过随机森林机器学习算法构件预…

车载以太网DoIP 协议,万字长文详解

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

[图解]软件开发中的糊涂用语-03-文档

0 00:00:00,280 --> 00:00:04,550 今天呢&#xff0c;我们来看一个糊涂用语&#xff0c;文档 1 00:00:07,810 --> 00:00:10,106 我们经常听到这样的话 2 00:00:10,106 --> 00:00:10,566 3 00:00:10,566 --> 00:00:13,322 你们怎么一上手就写代码 4 00:00:13,322…

基于springboot的教学辅助平台源码数据库

基于springboot的教学辅助平台源码数据库 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了教学辅助平台的开发全过程。通过分析教学辅助平台管理的不足&#xff0c;创建了一个计算机管理教学辅助平台的方案。…

Ps 滤镜:路径模糊

Ps菜单&#xff1a;滤镜/模糊画廊/路径模糊 Filter/Blur Gallery/Path Blur 路径模糊 Path Blur滤镜可以沿路径创建运动模糊&#xff0c;还可以控制形状和模糊量。Photoshop 可自动合成应用于图像的多个路径的模糊效果。 ◆ ◆ ◆ 主要用途 1、相对于动感模糊 Motion Blur滤镜…

易备数据备份软件案例分享:浙江某药业股份有限公司备份方案

浙江某药业股份有限公司致力于发展海洋生物医药&#xff0c;是浙江省海洋生物医药类上市公司。 公司生产及管理系统多样性 该公司拥有多条自动化生产线&#xff0c;这些生产线可以实现生产过程的自动化&#xff0c;提高生产效率和产品质量。公司生产及流程获得了药品生产质量…

【介绍下LeetCode的使用方法】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

vulfocus靶场之redis命令执行cve-2022-0543漏洞复现

漏洞&#xff1a; Redis是著名的开源Key-Value数据库&#xff0c;其具备在沙箱中执行Lua脚本的能力。 Debian以及Ubuntu发行版的源在打包Redis时&#xff0c;不慎在Lua沙箱中遗留了一个对象package&#xff0c;攻击者可以利用这个对象提供的方法加载动态链接库liblua里的函数&…

lua整合redis

文章目录 lua基础只适合lua连接操作redis1.下载lua依赖2.导包,连接3.常用的命令1.set,get,push命令 2.自增管道命令命令集合4.使用redis操作lua1.实现秒杀功能synchronized关键字 分布式锁 lua 基础只适合 1.编译 -- 编译 luac a.lua -- 运行 lua a.lua2.命名规范 -- 多行注…

Spring-datasource事务管理-手动请求事务回滚

什么场景下会触发&#xff1f; 在 Spring 中&#xff0c;调用 setRollbackOnly() 方法会将当前事务标记为 rollback-only&#xff0c;表示事务只能回滚&#xff0c;不能提交。这种情况通常发生在以下情景中&#xff1a; 业务逻辑判断&#xff1a;在方法中根据某些业务逻辑的判…

Java——数组

数组是一块连续的内存&#xff0c;用来存储相同类型的数据 一、数组的定义 数组的创建 T[] 数组名 new T[N]; T&#xff1a;表示数组中存放元素的类型 T[]&#xff1a;表示数组的类型 N&#xff1a;表示数组的长度 数组的初始化 数组的初始化主要分为动态初始化和静态初始…

第一篇:Java中的线程池介绍(阿里为什么要禁用Java内置线程池?自定义线程池参数如何设置?)

一、线程池分类 Java中提供的线程池类都在 java.util.concurrent 这个包下&#xff0c;也就是我们说的JUC。 线程池分为两类&#xff0c;一类是Java内置线程池&#xff0c;一类是自定义线程池。 内置线程池&#xff1a; FixedThreadPool&#xff08;固定大小线程池&#x…

哈尔滨等保测评综述

​ 定级是网络安全等级保护的首要环节和关键环节&#xff0c;可以梳理各行业、各部门、各单位的等级保护对象类型、重要程度和数量等基本信息&#xff0c;确定分级保护的重点。定级不准&#xff0c;系统备案、建设、整改、等级测评等后续工作都会失去意义&#xff0c;等级…

ElasticSearch查询时修改打分

原生的ES打分基于BM25算法&#xff0c;相比于TF-IDF已经有了较大的改进&#xff0c;但是在实际场景中往往最终的排序效果还是需要进行调整。由于直接修改索引的权重往往代价较大&#xff0c;比较经济的方式还是在查询时即时修改得分以实现排序控制。 注&#xff1a;案例测试数据…