一、核心目标
掌握 if-else(条件判断)和 while(循环),实现支持加减乘除的连续计算器。
二、上一篇练习精简答案(双向温度转换)
#include >
#include ip>
using namespace std;
int main() {
double celsius, fahrenheit;
int choice;
cout << "双向温度转换器\n1. 摄氏度→华氏度 2. 华氏度→摄氏度\n选择(1/2):";
cin >> choice;
if (choice == 1) {
cout <:";
cin >> celsius;
fahrenheit = celsius * 9.0/5.0 + 32;
cout << fixed << setprecision(2) << celsius < " << fahrenheit <℉" <
} else if (choice == 2) {
cout <华氏度:";
cin >> fahrenheit;
celsius = (fahrenheit - 32) * 5.0/9.0;
cout << fixed <precision(2) <ahrenheit < " << celsius <℃" < } else {
cout <" < }
return 0;
}
三、实战:多功能连续计算器
1. 完整代码(支持加减乘除 + 循环)
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double a, b, res;
char op; // 运算符(+、-、*、/)
bool isRunning = true; // 控制循环
cout <计算器(输入 'q' 退出)\n支持:+、-、*、/" < while (isRunning) {
// 输入表达式(如 3+5)
cout << "\n请输入表达式(例:2.5*4):";
cin >> a >> op >> b;
// 条件判断:根据运算符计算
if (op == '+') res = a + b;
else if (op == '-') res = a - b;
else if (op == '*') res = a * b;
else if (op == '/') {
if (b == 0) { // 避免除零错误
cout <除数不能为0!" <; // 跳过本次循环,重新输入
}
res = a / b;
} else if (op == 'q') { // 退出指令
isRunning = false;
cout < <;
} else {
cout <:不支持的运算符!" < continue;
}
// 输出结果(保留2位小数)
cout << fixed <precision(2) < << op << b <=" << res <
}
return 0;
}
2. 核心知识点提炼
- if-else:根据 op(运算符)执行不同计算逻辑,处理异常(除零、无效运算符);
- while 循环:isRunning 为 true 时重复执行,输入 q 则退出;
- 异常处理:continue 跳过错误循环,避免程序崩溃。
3. 运行效果
简易计算器(输入 'q' 退出)
支持:+、-、*、/
请输入表达式(例:2.5*4):3+5
3.00+5.00=8.00
请输入表达式(例:2.5*4):10/3
10.00/3.00=3.33
请输入表达式(例:2.5*4):7/0
错误:除数不能为0!
请输入表达式(例:2.5*4):q
退出计算器~
四、简易练习
修改代码,新增 "取余(%)" 功能(仅支持整数),提示:else if (op == '%') res = (int)a % (int)b;