当前位置: 首页 > news >正文

c++零基础通关教程《第四课》

🚀 C++ 编程第四课:关系运算符 —— 让程序学会 “比较”


📚 课程导航

  1. 🤔 关系运算符是什么? (6 种核心运算符)
  1. 📊 不同数据类型的比较 (int、double、float 对比)
  1. ⚠️ 比较时的注意事项 (避免踩坑小技巧)
  1. 📢 下节预告:单分支结构(if 语句)

1. 🤔 关系运算符是什么?—— 程序的 “比较小工具”

关系运算符就像我们生活中的 “比较规则”,比如 “小明的年龄是否比小红大”“苹果数量是否等于 5 个”,能帮程序判断两个值的关系,结果只有两种:成立(真,true)不成立(假,false)

(一)6 种核心关系运算符

运算符

名称

功能说明

示例代码

结果(假设 a=5,b=3)

==

等于

判断两个值是否相等

a == b

false(5≠3)

!=

不等于

判断两个值是否不相等

a != b

true(5≠3)

>

大于

判断左边值是否大于右边值

a > b

true(5>3)

<

小于

判断左边值是否小于右边值

a < b

false(5<3)

>=

大于等于

判断左边值是否大于或等于

a >= 5

true(5=5)

<=

小于等于

判断左边值是否小于或等于

b <= 2

false(3>2)

💡 小提醒:==是 “判断相等”,而=是 “赋值”(把值放进变量),千万别搞混!比如a == 5是问 “a 是不是 5”,a = 5是 “把 5 放进 a 里”。

(二)编程案例:用关系运算符判断成绩

比如老师要判断学生成绩是否及格(60 分及以上为及格),用关系运算符就能轻松实现:

#include <iostream>using namespace std;int main() {int score = 75; // 学生成绩bool is_pass; // 存储判断结果(true/false)// 用>=判断成绩是否及格is_pass = score >= 60;cout << "学生成绩:" << score << "分" << endl;cout << "是否及格:" << (is_pass ? "是" : "否") << endl; // 输出结果return 0;}

运行结果

学生成绩:75分

是否及格:是

案例说明:score >= 60判断 75 是否≥60,结果为true,所以is_pass存储 “真”,最终输出 “是”。


2. 📊 不同数据类型的比较 —— 别让 “类型” 搞混判断

我们学过int(整数)、double(双精度小数)、float(单精度小数),它们之间也能比较,但要注意 “规则”,不然会出错哦!

(一)常见数据类型比较场景

1. int 与 int 比较(最安全)

整数和整数比较,直接按数值大小判断,不会有误差:

int num1 = 10;int num2 = 10;cout << "10 == 10?" << (num1 == num2 ? "是" : "否") << endl; // 结果:是
2. int 与 double/float 比较(自动转换)

整数会自动转换成小数类型,再比较数值:

int a = 5;double b = 5.0;float c = 5.0f; // float类型要加fcout << "5 == 5.0?" << (a == b ? "是" : "否") << endl; // 结果:是cout << "5 == 5.0f?" << (a == c ? "是" : "否") << endl; // 结果:是

原理:a=5会变成5.0(double 类型),再和b=5.0比较,数值相等,结果为真。

3. double 与 float 比较(注意精度)

double精度比float高,比较时float会转成double,但要避免 “精度误差”:

double d = 0.1;float f = 0.1f;// 注意:0.1在二进制中无法精确表示,float转double后可能有微小误差cout << "0.1(double) == 0.1f(float)?" << (d == f ? "是" : "否") << endl;

运行结果

0.1(double) == 0.1f(float)?否

避坑技巧:尽量用同类型比较,比如都用double,或用 “差值小于很小的数” 判断(如abs(d - f) < 0.000001)。

(二)编程案例:混合类型比较实战

比如判断 “苹果总价是否超过 10 元”,单价是double(3.5 元 / 个),数量是int(3 个):

#include <iostream>using namespace std;int main() {int apple_count = 3; // 苹果数量(int)double price_per = 3.5; // 单价(double)double total; // 总价bool is_over_10; // 是否超过10元total = apple_count * price_per; // 计算总价:3*3.5=10.5is_over_10 = total > 10; // 比较总价和10cout << "苹果数量:" << apple_count << "个" << endl;cout << "单价:" << price_per << "元/个" << endl;cout << "总价:" << total << "元" << endl;cout << "总价是否超过10元?" << (is_over_10 ? "是" : "否") << endl;return 0;}

运行结果

苹果数量:3个

单价:3.5元/个

总价:10.5元

总价是否超过10元?是

案例说明:apple_count=3(int)和price_per=3.5(double)计算时,3 会转成 3.5,总价 10.5(double)和 10 比较,结果为真。


3. ⚠️ 比较时的注意事项 —— 避开这些 “小陷阱”

  1. ❌ 不要用==比较浮点数(如double/float)

因为浮点数可能有精度误差(比如 0.1 实际存储为 0.1000000001),用==容易判断错误,改用 “差值小于极小值”:

double x = 0.1 + 0.2;

double y = 0.3;

// 错误:cout << (x == y ? "相等" : "不相等"); // 结果可能是“不相等”

// 正确:判断差值是否小于0.000001(根据需求调整精度)

cout << (abs(x - y) < 0.000001 ? "相等" : "不相等"); // 结果:相等

  1. ❌ 别把==和=搞混

==是 “判断相等”,=是 “赋值”,比如if (a = 5)会把 5 赋值给 a,永远为真,正确写法是if (a == 5)。

  1. ✅ 比较前尽量统一数据类型

比如把int转成double,或把float转成double,减少类型转换带来的误差。


4. 📢 下节预告:单分支结构(if 语句)

本节课我们学会了用关系运算符判断 “谁大谁小、是否相等”,下一节课我们要学习单分支结构(if 语句)—— 让程序根据判断结果 “做选择”!

比如:

  • 如果成绩≥60 分,就输出 “恭喜及格!”;
  • 如果苹果总价超过 10 元,就输出 “需要多带点钱哦!”。

单分支结构能让程序更 “智能”,根据不同情况执行不同代码,是编写复杂程序的重要基础,期待下节课一起学习吧!😉

http://www.dtcms.com/a/619618.html

相关文章:

  • 网站seo外包价格北京ui网页设计培训
  • 邹城做网站wordpress 模版仿米拓
  • 一般购物网站项目wordpress主题上传怎么用
  • C语言中共享内存完整示例及函数详解
  • 创新网站建设论文wordpress 中文 插件
  • 在工商局网站如果做注销公告11电影网
  • 南头专业外贸网站建设公司绿色郑州网站
  • 餐饮酒店网站建设网页传奇网址
  • 网站建设 客户评价泰州网站专业制作
  • 电子商务网站概念食品网站建设目的
  • 携程前端开发200道题面经及参考答案(上)
  • 深圳最好的网站建设公司排名建站公司前景
  • 郑州免费网站制作沈阳网络公司排名
  • 易捷网站内容管理系统漏洞太原网站搜索优化
  • 网站投注建设网页设计作业制作个人网站
  • 软件公司网站模板下载广告设计制作属于什么行业
  • 成都科技网站建设咨询电话湛江建站服务
  • 域名先解析后做网站帮做非法网站
  • CSS 自定义属性与滤镜:打造动态视觉效果的现代 Web 技术
  • 做自己的卡盟网站网站开发需要什么
  • 电子商务网站模版做图模板网站有哪些
  • 网站建设做什么会计分录厦门做企业网站比较好的公司
  • 扫码支付做进商城网站南京建设工程交易中心网站
  • 巩义做网站长沙网站设计培训学校
  • QC七大手法之柏拉图
  • 阜阳建设网站公司电话做网站找公司怎么找
  • [C#] NO.4 我的第一个C#项目
  • linux root节点解析
  • 14.vector(上)
  • 烟台网站建设开发网站正在建设中永久