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

1.4 C++之运算符与表达式


运算符与表达式教程

目标
  1. 掌握算术运算符(+, -, *, /)和逻辑运算符(&&, ||, !)。
  2. 理解表达式优先级规则。
  3. 实现一个简单计算器程序。

一、算术运算符:像数学课上的加减乘除

1. 四种基本运算
  • 加法(+:合并数量
int apples = 3 + 2;  // 小明有3个苹果,妈妈又给了2个,现在有5个
  • 减法(-:减少或比较差值
int money = 10 - 3;  // 原本有10元,买铅笔花了3元,剩下7元
  • 乘法(*:快速累加
int legs = 4 * 3;    // 3只小狗共有12条腿
  • 除法(/:平均分配
int cookiesPerChild = 6 / 3;  // 6块饼干分给3个孩子,每人2块
float realDivision = 7.0 / 2; // 精确除法结果是3.5(必须用浮点数)
2. 特别注意:整数除法 vs 小数除法
  • 如果操作数都是整数,结果会自动舍去小数(像取整):
cout << 5 / 2;   // 输出2,不是2.5!
cout << 7.0 / 2; // 输出3.5(至少一个数是小数)

二、逻辑运算符:做判断题的“神器”

1. 三种逻辑操作
  • 与(&&同时满足两个条件
bool canPlay = (homeworkDone && isSunny); // 作业做完且天气好才能出去玩
  • 或(||满足任意一个条件
bool canWatchTV = (isWeekend || isHoliday); // 周末或假期可以看电视
  • 非(!取反
bool isNotRaining = !isRaining; // 不下雨时可以去公园
2. 生活场景示例
int age = 12;
bool hasTicket = true;if (age >= 10 && hasTicket) { cout << "可以坐过山车!"; 
} else {cout << "不符合条件哦~";
}

三、表达式优先级:谁是“老大”?

1. 优先级规则(从高到低)
  1. **括号 **( ):强制优先计算
  2. **乘除 *** /:先算乘除
  3. **加减 **+ -:后算加减
  4. **逻辑运算符 && **||:最后判断
2. 示例解析
int result1 = 2 + 3 * 4;    // 3*4=12 → 2+12=14  
int result2 = (2 + 3) * 4;  // 2+3=5 → 5*4=20  
bool logic = (5 > 3) && (2 + 3 == 5); // 先计算算术,再判断逻辑 → true

四、动手实践:简单计算器

任务:输入两个数和操作符(+, -, *, /),输出计算结果。
代码示例
#include <iostream>
using namespace std;int main() {float num1, num2;char op;cout << "请输入第一个数字:";cin >> num1;cout << "请输入运算符(+ - * /):";cin >> op;cout << "请输入第二个数字:";cin >> num2;switch(op) {case '+':cout << "结果:" << num1 + num2;break;case '-':cout << "结果:" << num1 - num2;break;case '*':cout << "结果:" << num1 * num2;break;case '/':if (num2 != 0) {cout << "结果:" << num1 / num2;} else {cout << "错误:除数不能为0!";}break;default:cout << "无效的运算符!";}return 0;
}
代码解释
  • 使用 switch 根据运算符执行对应计算。
  • 除法时检查除数是否为0,避免程序崩溃。

五、常见问题解答(QA形式)

Q15 / 2 为什么等于2而不是2.5?
A:因为两个操作数都是整数,结果会自动取整。若要得到小数,至少一个数要写成小数形式(如5.0 / 2)。

Q2&&|| 可以一起用吗?
A:可以!但要注意优先级,建议用括号明确顺序。例如:

bool isHappy = (score > 90 && (isSunny || isHoliday));

Q3:输入字母而不是数字会怎样?
A:程序会出错!后续课程会学习如何检测输入错误(如数据类型验证)。


六、互动挑战

  1. 扩展计算器:增加计算平方的功能(输入^符号时计算 num1 * num1)。
  2. 逻辑谜题:编写程序判断用户是否能参加比赛,条件是年龄≥10岁且身高≥1.2米,或者有家长陪同。

生活小实验

让孩子用代码解决实际问题:

  • 零花钱计算:每周攒5元,计算3个月(12周)后总金额。
  • 天气决策:如果温度>25℃且不下雨,输出“去游泳”,否则输出“在家学习”。

相关文章:

  • 分类算法 Kmeans、KNN、Meanshift 实战
  • 从 0 到 1:用 Trae 插件 Builder 模式开发端午包粽子小游戏
  • 权限控制相关实现
  • 基于Flink的数据中台管理平台
  • 制作一款打飞机游戏53:子弹样式
  • 破解充电安全难题:智能终端的多重防护体系构建
  • Token类型与用途详解:数字身份的安全载体图谱
  • 项目中Warmup耗时高该如何操作处理
  • 在SpringBoot项目中,使用单元测试@Test
  • 数据库与Redis数据一致性解决方案
  • 25_05_19Linux实战篇、第一章_02若依前后端部署之路(前端)
  • nfs存储IO等待,导致k8s业务系统卡慢问题处理
  • 十四、Hive 视图 Lateral View
  • Linux 文件(3)
  • 算法第25天 | 491. 非递减子序列、46. 全排列、47. 全排列 II
  • C语言——函数递归与迭代
  • 【Java高阶面经:微服务篇】6.从机房到线程池:隔离机制如何成为高可用系统的“隐形护盾”?
  • 基于Android的XX校园交流APP
  • CSDN gitcode代码推送
  • Python数据可视化高级实战之一——绘制GE矩阵图
  • 云南旅游市场10条措施征求意见:对强制诱导购物等吊销导游证的不得再次核发
  • 六个最伤脊柱的姿势,你可能天天在做
  • 太原一居民手机号被企业公示常遭骚扰,负责人称是用过的旧号
  • 新华社原香港分社副社长、深圳市委原副书记秦文俊逝世
  • 半年不到再换岗:伊春市委常委、政法委书记方春彪任伊春森工集团党委书记
  • 周慧芳任上海交通大学医学院附属上海儿童医学中心党委书记