简单计算器
简单约 20 分钟
你将构建什么
一个命令行计算器:玩家输入两个数字和一个运算符(+、-、*、/),程序调用对应的函数计算并输出结果,支持连续多次计算。
学习目标
- 把每种运算封装成独立函数,理解参数和返回值
- 用条件判断或映射选择对应的运算函数
- 处理除零错误等边界情况
- 用循环让计算器可以反复使用,直到玩家选择退出
前置要求
- 了解函数的基本概念(参数、返回值)
- 了解条件判断和循环
- 已完成“猜数字游戏”项目或具备同等基础
步骤
- 1
定义四则运算函数
为加减乘除各定义一个函数,每个函数接收两个参数 a 和 b,返回运算结果。除法函数需要特殊处理:当 b 为 0 时返回错误提示而不是直接计算。
代码function add(a, b): return a + b function subtract(a, b): return a - b function multiply(a, b): return a * b function divide(a, b): if b == 0: return "错误:除数不能为 0" return a / b预期结果
四个函数定义完成,可以分别调用得到运算结果。
提示
函数名用动词或运算名,参数名用 a、b 简洁明了即可。
- 2
读取用户输入
提示用户输入两个数字和一个运算符。把数字字符串转换为数值类型,运算符保持为字符串。注意处理输入转换可能失败的情况。
代码a = input("请输入第一个数字:") operator = input("请输入运算符 (+ - * /):") b = input("请输入第二个数字:")预期结果
程序读取三个输入:两个数字和一个运算符。
提示
输入的数字默认是字符串,需要用 Number() 或 parseInt() 转换。
- 3
根据运算符调用对应函数
用 if/else if 或 switch 判断运算符,调用对应的运算函数并输出结果。如果运算符不是 +、-、*、/ 之一,给出错误提示。
代码if operator == "+": result = add(a, b) else if operator == "-": result = subtract(a, b) else if operator == "*": result = multiply(a, b) else if operator == "/": result = divide(a, b) else: result = "错误:不支持的运算符" print("结果是:" + result)预期结果
输入 5、+、3 输出 8;输入 10、/、0 输出除零错误提示。
提示
也可以用映射(对象)把运算符直接对应到函数,代码更简洁。
- 4
用循环支持连续计算
把整个计算流程包进 while 循环,每次计算后询问用户是否继续。输入“yes”继续,输入其他任何值则退出程序。
代码while true: // ... 读取输入并计算 ... print("结果是:" + result) again = input("是否继续计算?(yes/no):") if again != "yes": print("感谢使用,再见!") break预期结果
计算器可以反复使用,直到用户输入 no 退出。
提示
用 break 跳出循环,或者把循环条件设为 again == “yes”。
自己动手试试
起始代码
function calculate(a, op, b) {
// TODO: 实现 +、-、*、/,并处理除零
}
// 测试调用
console.log(calculate(4, "+", 5));
console.log(calculate(8, "/", 0));解决方案代码
function calculate(a, op, b) {
if (op === "+") return a + b;
if (op === "-") return a - b;
if (op === "*") return a * b;
if (op === "/") {
if (b === 0) return "除数不能为 0";
return a / b;
}
return "未知运算符";
}
console.log(calculate(4, "+", 5)); // 9
console.log(calculate(10, "-", 3)); // 7
console.log(calculate(6, "*", 7)); // 42
console.log(calculate(8, "/", 2)); // 4
console.log(calculate(5, "/", 0)); // 除数不能为 0你学到了什么
你学会了用函数封装逻辑、用参数传递数据、用返回值输出结果——这是结构化编程的核心。把大问题拆成小函数,代码更清晰、更容易维护。
相关资源
相关术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
相关错误
用大白话解释常见错误——什么意思、为什么发生、如何修复。