再学C语言19:循环控制语句——关系运算符

news2024/11/20 2:38:11

关系表达式(relational expression):进行比较的判断表达式

关系运算符(relational operator):关系表达式中出现的运算符

一、关系运算符

关系运算符
运算符含义
<小于
<=小于或等于
==等于
>=大于或等于
>大于
!=不等于

关系运算符可以用于字符的比较,此时比较的是字符代码的大小(如ASCII码)

关系运算符不可以用于比较字符串

关系运算符可以用于浮点数比较,但是只能使用<和>,因为舍入误差可能造成两个逻辑上应该相等的数不相等

示例代码:使用math.h中的fabs()函数进行浮点数判断

/* test fabs function */
#include <stdio.h>
#include <math.h>
#define PI 3.14
int main(void)
{
    float key_input;
    printf("Enter the value of PI: \n");
    scanf("%f", &key_input);
    while(fabs(key_input - PI) > 0.01) // fabs()函数返回一个浮点值的绝对值
    {
        printf("Wrong, enter again. \n");
        scanf("%f", &key_input);
    }
    printf("Right! \n");
    return 0;
}

运行结果: 

9760726f66dc474d93d8a60c8931f35e.png

每个关系表达式都被判定为真或假

对C来说,一个真表达式的值为1,一个假表达式的值为0

C中,所有的非零值都被认为是真,只有0被认为是假

只要while循环的判断条件的值非零,就可以继续执行

如果关系表达式为真,其值为1;如果为假,其值为0

while(num)        // 与while(num != 0)等效
while(num == 1)   // 检查num的值是否为1
while(num = 1)    // 将1赋给num,该表达式始终为真

不要在应该使用==的地方使用=,二者有很大区别,在类似while循环这种场合用错的话,程序会出现意想不到的错误

如何避免:如果进行比较的双方有一个是常量,可以把其放在比较表达式的左边,这种写法有助于发现错误

while(1 == num)   // 编译器显示正确
while(1 = num)    // 编译器报错,有利于帮助开发者发现问题

二、_Bool类型

C中,表示真/假的变量一直由int类型表示

C99中,专门增加了_Bool类型

一个_Bool变量只可以具有值1(真)或0(假),如果把一个_Bool变量赋为一个非零的数值,变量就被设置为1,C把任何非零的值都认为是真

如果包含了stdbool.h头文件,可以使用bool代替_Bool,并把true和false定义为值1和0的符号常量

三、关系运算符的优先级

赋值运算符 < 关系运算符优先级 < 算术运算符

示例:

x > y + 2 等同于 x > (y + 2)

关系运算符从左到右进行结合

a != b == c 等同于 (a != b) == c
运算符优先级
运算符(优先级从高到低)结核性
()从左到右
-   +    ++    --    sizeof()    (所有的一元运算符)从右到左
*    /    %从左到右
+    -从左到右
<    >    <=    >=从左到右
==    !=从左到右
=从右到左

 

 

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

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

相关文章

第二十一讲:神州路由器RIP路由的配置

设备 端口 IP 子网掩码 网关 Router-A F0/0 192.168.1.1 255.255.255.0 无 F0/3 192.168.10.1 255.255.255.0 无 Router-B F0/0 192.168.1.2 255.255.255.0 无 F0/3 192.168.20.1 255.255.255.0 无 PC1 192.168.10.2 255.255.255.0 192.168.10.1 PC…

超店有数丨tiktok必备选品和带货技巧!小白秒变大神!

有一些刚刚入门的小白缺乏跨境电商选品灵感&#xff0c;苦于不知道从哪里挖掘爆款产品&#xff0c;不知如何发现热门商家。如果你也面临着这些困扰&#xff0c;可以试试超店有数&#xff0c;它是专业的第三方数据服务平台&#xff0c;能够帮助商家发现热门种草视频、进行小店数…

【C++、数据结构】二叉搜索树 模拟实现

文章目录&#x1f4d6; 前言1. 二叉搜索树2. 二叉搜索树的模拟实现2.1 结点的声明2.2 基本的几个成员函数非递归版本&#xff08;1&#xff09;查找&#xff1a;&#xff08;2&#xff09;插入&#xff1a;&#xff08;4&#xff09;删除&#xff1a;&#xff08;重点&#xff…

你阳了吗?可以接种最新加强针疫苗了!

今天不聊技术&#xff0c;唠唠嗑。刚才得知室友全部阳了&#xff0c;不知道我还能撑到多会&#x1f926;‍♂️当前时间&#xff0c;距离全国抗疫政策转向已有一个月时间&#xff0c;大家都不可避免的直面新冠病毒。奥密克戎的传播能力果然很强&#xff0c;短短半个月时间从周围…

Docker- 7.2、跨主机网络-overlay

Docker提供了overlay driver&#xff0c;使用户可以创建基于VxLan的overlay网络。VxLAN可将二层数据封装到UDP进行传输&#xff0c;VxLAN提供与VLAN相同的以太网二层服务&#xff0c;但拥有更强的扩展性和灵活性。Docker overlay网络需要一个key-value数据库用于保存网络状态信…

嵌入式C语言设计模式 --- 工厂方法模式

1 - 什么是工厂方法模式? 前一篇文章讲述了在使用简单工厂模式的时候,有一个明显的缺陷,就是我们添加一款新的LCD控制器的时候,需要修改工厂类的构造函数(因为只有一家工厂),在switch-case里面新增一个条件项,违背了面向对象设计的“开闭原则”。 为了解决这个问题,可…

让自己成为一个创作者

写博客三年多&#xff0c;创作不易&#xff0c;以下是自己的一点感悟&#xff0c;大家共勉&#xff01; “千万不要把“创作”当成是一件很大的事情&#xff0c;那只是思维方式和行为的转变而已&#xff01;” 01 — 我有个爱好--打游戏&#xff0c; 特别喜欢宫崎英高的魂系…

【JavaSE成神之路】数组结构的概念与应用技术

哈喽&#xff0c;我是兔哥呀&#xff0c;今天就让我们继续这个JavaSE成神之路&#xff01; 这一节啊&#xff0c;咱们要学习的内容是数组的概念与应用技术。 乍一听还挺唬人的有没有&#xff0c;数组这个东西呢并不是什么新的知识啦&#xff0c;之前的章节中我们已经学习过数组…

Linux虚拟机安装Hive(mysql安装)

Hive安装第01节 Hive安装部署1. 安装前准备2. 安装MySQL3. Hive安装配置4. metastore服务第02节. Hive客户端的使用1. 客户端介绍2. HiveServer2服务3. Hive CLI的使用4. beeline客户端5. DataGrip可视化客户端第02节 Hive简单使用1. 基本操作2. 查看YARN及HDFS3. 总结第01节 H…

Java开发 - 双链表其实不可怕

前言 说起链表&#xff0c;那还是当初上学的时候学习的&#xff0c;印象里就觉得像锁链一样一环扣一环&#xff0c;后来工作后就几乎没实际接触过链表&#xff0c;每当遇到链表&#xff0c;总是不知道该怎么讲&#xff0c;因为对链表的本质一无所知。也是在学习了Java后&#…

即将2023年了,我好想念那些2022年离职的兄弟

☆ 2022年终于即将要过去了&#xff0c;从年初开始&#xff0c;就有小伙伴不断的离开&#xff0c;10% 15% 20%&#xff0c;陆陆续续的。被裁的同学还拿着赔偿走了&#xff0c;不管未来怎么样吧&#xff0c;当下总算一身轻了。 ☆ 留下的其实一点也不轻松&#xff0c;以下这些经…

Anchor Based和Anchor Free的相爱相杀与ATSS的诞生

前言 我们都知道按照是否出现RPN可将目标检测算法分为two-stage和one-stage&#xff0c;其中one-stage的一个主要代表便是YOLO系列&#xff0c;而根据是否存在先验锚框的定义我们也可以将其分为Anchor based和Anchor free两类&#xff0c;关于这两种也是各有优劣&#xff0c;但…

7-7 静静的推荐

天梯赛结束后&#xff0c;某企业的人力资源部希望组委会能推荐一批优秀的学生&#xff0c;这个整理推荐名单的任务就由静静姐负责。企业接受推荐的流程是这样的&#xff1a; 只考虑得分不低于 175 分的学生&#xff1b;一共接受 K 批次的推荐名单&#xff1b;同一批推荐名单上…

入职软件测试一年多,薪资正常应该有多少?

软件测试这个行业我见过工作5年依然是初级水平的功能测试&#xff0c;拿着不到1W的薪资&#xff0c;也见过1年时间达到高级自动化水平的大牛学霸&#xff01;拿着25K的薪资。 影响你薪资的有两点&#xff01; 一、你的技术水平高低直接决定你薪资的多少&#xff0c;工作时间长…

谷粒学院——Day14【首页课程和名师功能】

❤ 作者主页&#xff1a;Java技术一点通的博客 ❀ 个人介绍&#xff1a;大家好&#xff0c;我是Java技术一点通&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 记得关注、点赞、收藏、评论⭐️⭐️⭐️ &#x1f4e3; 认真学习&#xff0c;共同进步&#xff01;&am…

数字硬件建模SystemVerilog-组合逻辑建模(4)组合逻辑决策优先级

数字门级电路可分为两大类&#xff1a;组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点&#xff0c;在后面会作为单独的主题处理。组合逻辑描述了门级电路&#xff0c;其中逻辑块的输出直接反映到该块的输入值的组合&#xff0c;例如&#xff0c;双输入AND门的输出…

四点流程做好商机管理

企业想做好商机管理&#xff0c;仅凭员工是做不到的&#xff0c;借助CRM销售管理系统是比较明智的选择。接下来小编从客户信息管理、业务进程跟踪、设置提醒、销售漏斗等方面讲讲企业如何做好商机管理。 只有提高商机的转化率&#xff0c;企业的利润才会增长。想做好商机管理&…

MySQL 索引事务 · 讨论适合索引的数据结构 · N叉搜索树 · B+树 · 聚簇索引与非聚簇索引 · 事务的四个核心特性

一、索引1.1 概念1.2 作用1.3 讨论-如何提高查询的速度合适的数据结构&#xff1a;二叉搜索树AVL 树红黑树哈希表以上数据结构的问题&#xff1a;N 叉搜索树B 树B 树1.4 索引的使用场景1.5 索引的使用1.6 聚簇索引与非聚簇索引聚簇索引非聚簇索引1.7 索引 - 小结二、事务2.1 为…

小程序-会议OA项目-首页

目录 一&#xff0c;flex弹性布局 什么是flex布局&#xff1f; flex属性 flex-direction属性 学习地址&#xff1a; OA项目搭建以及flex布局演示 二&#xff0c;轮播图--组件的使用 1.先去官方文档中查看轮播图组件如何使 2.在开发工具中查看演示及修改代码 3. 使用mock…

异步通信技术AJAX | 基于JSON、XML的数据交换

目录 一&#xff1a;快速搞定AJAX&#xff08;第二篇&#xff09; 1、JS中如何创建和访问JSON对象 2、基于JSON的数据交换&#xff08;重点&#xff09; 3、基于XML的数据交换&#xff08;了解&#xff09; 一&#xff1a;快速搞定AJAX&#xff08;第二篇&#xff09; 1、…