C语言中的逻辑判断

2023-11-06

C语言中的逻辑判断

C语言中的逻辑判断是以真和假来表示的,0为假一切非零为真。这里举几个例子,来让读者更加深入地了解判断语句。


逻辑值

int a=5;
int b=3;
int c=a>b;

我们来看c的结果,这时c=1,因为a>b为真。

int a=5;
int b=3;
int c=a<b;

我们再来看c的结果,这时c=0,因为a<b为假。

int a=5;
int b=3;
int c=2;
int d=a>b>c;
 
做了一下小小的改动,这里的比较大小可不是连续比较a,b,c的大小。
先判断a>b 结果为1,再判断1>c为假。所以d的结果为0。
 
理解了上面的逻辑判断我们再来看下文就容易的多了。

 


逻辑判断符号

常用的逻辑判断符号有:
‘<’,’>’,’<=’,’>=’,’==’(等于),’!=’(不等于),’&&’(并且),’||’(或);

‘&&’:连接两个逻辑表达式或逻辑值,是并且的意思,一个条件为真还不够,两个条件为真,才为真。(如果判断第一个逻辑值为0,则&&后面的不进行运算)。
 

‘||’:同样是连接两个逻辑表达式或逻辑值,是或的意思,一个条件为真就为真。(如果判断第一个逻辑值为1,||后面的不进行运算)。
 
这里要注意逻辑中的==与赋值语句的=不要写混了,这个错误不仅仅初学者会犯。
 


if 语句:

if (逻辑表达式,或一个逻辑值) {
	要执行的程序;
}

我们来举一个简单的例子帮助大家理解:
在这里插入图片描述
输出结果为a>b。

这段代码中if(a>b),if判断的是a是否大于b。为真则运行if中的程序。为假则不运行。(这里if中判断的是a>b的逻辑值,是一个具体的值,a大于b吗?大于的话值为1,小于的话值为0)。

我们再来看下段代码:
在这里插入图片描述
输出结果为a>b

这里的int c存放的是a>b的结果,为真c=1,为假c=0。

注意:这里要注意的是if有无{}的问题,如果有{}当然是运行花括号里面的程序段。如果没有花括号,if语句只运行下面第一个“;”前的语句。后面的语句不在if管辖范围内,while语句和for语句也一样。通常,习惯加上{}来提高代码阅读性和整洁度。

 


else语句:

   if (逻辑表达式,或一个逻辑值) {
	      要执行的程序;
    }else{
          要执行的程序;
  }

else判断的是除了if括号中的情况外的所有情况。也就是逻辑值为0的情况。所以else后面没有()。
 

我们来完善一下上面的程序,让它变成一个简单的比大小程序。
在这里插入图片描述

程序输出结果为a>b。

注意:
1.else只与其前面最近的为匹配的if匹配。
2.没有花括号else也一样只执行第一个;前面的一条语句。

 


else if语句:

细心的朋友会发现,上面的比大小程序出现了一个漏洞。如果输入的两个数字a和b相等,程序依旧会输出a值<b值。

 

我们来用else if进一步完善程序:

在这里插入图片描述
else if用法:在if表达式为假时来进行其他情况的判断。else if可以写多个。表达多种不同的情况。

 if(条件1){
             程序;
      }else if(条件2){

              程序;
         }else if(条件3){
                  
                程序;
            }else{      //除了上面三种条件的所有条件

                  程序;
                 }

注意:跟if和else一样,没有花括号时只执行第一个 ; 前的一条语句。

 

总结:

C语言中逻辑判断的表达式的结果0为假非0即真。这句话很重要,逻辑的判断就是遵循这一原则。

 

这是本人第一次写博客,本人还在学习阶段,如有问题请多多指正,互相学习。感谢读者观看!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中的逻辑判断 的相关文章

  • tp摄像头的默认地址_TP-Link路由器默认管理员密码是什么 路由器默认管理员密码介绍【详解】...

    TP Link路由器默认管理员密码是多少 最近有网友咨询了小编这样的问题 其实关于TP Link路由器的默认管理员密码是要根据路由器的型号而介绍的 因为有些型号的TP Link路由器是有默认管理员用户名和密码的 而有些型号是没有的 这对这个
  • Flutter 容器(5) - SizedBoxSizedBox

    SizedBox 两种用法 一是可用来设置两个widget之间的间距 二是可以用来限制子组件的大小 import package flutter material dart class AuthList extends StatelessW
  • squid 用户通过NCSA认证

    Squid的用户认证设置 默认时 Squid本身不带任何认证程序 但是可以通过外部认证程序来实现用户认证 一般有以下的认证程序 LDAP认证 SMB认证 基于mysql的认证 基于sock5的密码认证和基于Radius的认证 下面介绍常用的
  • STM32设置为I2C从机

    硬件平台 STM32F401 编辑器 keil 5 18 操作系统 win7 一 I2C协议 在传输数据的时候 SDA线必须在时钟的高电平周期保持稳定 SDA的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变 起始和停止条件 SC

随机推荐

  • JavaScript的三大组成

    文章目录 一 JavaScript三大组成 1 ECMAScript 2 DOM 3 BOM 总结 一 JavaScript三大组成 JavaScript的三个部分为 ECMAScript JavaScript语法规范 是JS的基础也是核心
  • SpringBoot打包jar包并后台运行

    最近又进步了 我一直习惯直接在Intellij Idea中直接运行写好的程序 不过也是因为仅仅是写个模拟接口而已 后来到新公司要负责java后台 开始习惯把项目部署到外部Tomcat去测试 或者打成war包让运维去linux上面部署 不过
  • 基于OpenCV的视频道路车道检测

    基于OpenCV的视频道路车道检测 基于OpenCV的视频道路车道检测 前言 综述 运行方法 车道检测的实现 路面图像二值化 基于透视变换提取车道区域 基于二次多项式拟合车道线 计算曲率半径与车辆的偏移距离 用车道区域标注原始图像 总结 E
  • 网站服务器评测,9.2分! 浪潮服务器受到海外权威专业评测网站肯定

    目前 浪潮服务器业务覆盖全球120个国家和地区 拥有8个全球研发中心 6个全球生产中心以及2个全球服务中心 海外权威服务器专业评测网站ServeTheHome 简称STH 曾对浪潮NE5260M5边缘服务器进行测评 该服务器斩获9 2的高分
  • threejs实现一个固定大小的3d标点

    需求背景 需要在3d模型上实现标注的功能 一开始是直接通过添加一个普通的mesh来实现的 但是这样就会有一个问题 当视图缩放的时候 标注也会跟着一起放大缩小 影响视觉效果 因此需要实现一个不会随着视图一起放大或者缩小的mesh 实现思路 明
  • MongoDB update数据语法

    mongodb更新有两个命令 1 update 命令 db collection update criteria objNew upsert multi criteria update的查询条件 类似sql update查询内where后面
  • Qt自定义窗口部件/控件(实现一个十六进制微调框SpinBox)

    目录 1 自定义Qt窗口部件 控件 2 十六进制微调框 SpinBox 2 1 实现思路 2 2 源码 3 使用方法 3 1 代码添加自定义窗口部件 控件 3 2 Qt设计师添加自定义窗口部件 控件 3 3 运行效果 4 缺点 1 自定义Q
  • tomcat线程池配置

    以Tomcat8为例 配置方式一
  • dependency-check-maven安全漏洞扫描工具介绍

    目录 dependency check maven安全漏洞扫描工具介绍 dependency check maven插件 重点参数解析 运行命令 检查单个maven工程安全漏洞 检查多个maven子工程汇总一个报告 命令行方式运行 扫描报告
  • 压缩感知(Compressed sensing)from wiki

    压缩感知 Compressed sensing 也被称为压缩采样 Compressive sampling 或稀疏采样 Sparse sampling 是一种寻找欠定线性系统的稀疏解的技术 压缩感知被应用于电子工程尤其是信号处理中 用于获取
  • Java继承和多态之接口

    Java继承和多态之接口 题目要求 仔细阅读右侧编辑区内给出的代码框架及注释 在 Begin End 中实现两个数的求和运算和比较 具体要求如下 编写程序 实现两个数的求和运算和比较 请在下面的Begin End之间按照注释中给出的提示编写
  • CVPR2021 视频目标检测——MM-DistillNet 基于多模态知识提取的自监督多目标检测与跟踪论文笔记/附原文和代码

    本文是CVPR2021最新的视频目标检测的论文 原文地址 https arxiv org abs 2103 01353v1 代码 https github com robot learning freiburg MM DistillNet
  • 028:vue上传解析excel文件,列表中输出内容

    第028个 查看专栏目录 VUE element UI 专栏目标 在vue和element UI联合技术栈的操控下 本专栏提供行之有效的源代码示例和信息点介绍 做到灵活运用 1 提供vue2的一些基本操作 安装 引用 模板使用 comput
  • python3 numpy详解

    基础操作 import numpy as np np创建数组 a np array 1 2 3 print a print type a a2 np array range 10 print a2 print type a2 numpy特有
  • DDoS攻击的三种类型

    如其名称所示 拒绝服务 DoS 攻击是为了使任何类型的服务无法访问 举例来说 关闭对外部在线资产如电子商务网站的访问构成拒绝服务 分布式拒绝服务 DDoS 的主要目的是防止服务被使用并被破坏 而不是试图破坏目标的安全范围 DDoS攻击针对服
  • Wix学习整理(6)——安装快捷方式

    一 为HelloWorld案例添加安装快捷方式 通常我们安装一个应用软件的时候 都喜欢在桌面或开始菜单中添加快捷方式以便我们快速访问 现在我们就在上篇添加注册信息的基础上为HelloWorld的安装包添加安装快捷方式 下面我们将以安装开始菜
  • SAP QM 执行事务代码QE01为检验批录入结果直接进入Multiple Specification标签页?

    SAP QM 执行事务代码QE01为检验批录入结果直接进入Multiple Specification标签页 1 检验批10000000509是采购订单收货后触发的检验批 执行事务代码QE01 为检验批10000000509录入检验结果 输
  • 【单片机毕业设计】【mcuclub-306】万年历电子时钟

    设计简介 项目名 基于单片机的万年历电子时钟的设计 基于单片机的多功能时钟的设计 基于单片机的数字时钟的设计 单片机 STC89C52 功能简介 1 通过DS1302实时获取时间 并掉电保存时间 2 通过DS18B20获取环境温度值 3 通
  • lodash的2个数组对象操作

    根据数组对象 下的属性名称 来返回相应 的值 数据格式如下 var data test1 test2 test3 test4 test5 var key test1 对象的每个属性名称不是相同的 对应的值 是一个数组 方法1 将data初始
  • C语言中的逻辑判断

    C语言中的逻辑判断 C语言中的逻辑判断是以真和假来表示的 0为假 一切非零为真 这里举几个例子 来让读者更加深入地了解判断语句 逻辑值 int a 5 int b 3 int c a gt b 我们来看c的结果 这时c 1 因为a gt b