加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
基本四则运算.js 2.19 KB
一键复制 编辑 原始数据 按行查看 历史
周健熙 提交于 2024-05-01 18:08 . 移动文件
function calculate(expression) {
// 使用正则表达式拆分表达式为操作数和操作符
const parts = expression.match(/(\d+)([\+\-\*/])(\d+)/);
if (!parts || parts.length !== 4) {
throw new Error('Invalid expression');
}
const num1 = Number(parts[1]);
const operator = parts[2];
const num2 = Number(parts[3]);
// 检查操作数是否为数字
if (isNaN(num1) || isNaN(num2)) {
throw new Error('Invalid operands');
}
let result;
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
// 防止除数为0
if (num2 === 0) {
throw new Error('Cannot divide by zero');
}
result = num1 / num2;
break;
default:
throw new Error('Invalid operator');
}
return result;
}
// 测试
try {
console.log(calculate('1+2')); // 输出:3
console.log(calculate('3-2')); // 输出:1
console.log(calculate('2*3')); // 输出:6
console.log(calculate('4/2')); // 输出:2
// 操作数或操作符错误的情况
try {
console.log(calculate('invalid')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid expression
}
try {
console.log(calculate('1+2abc')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid expression
}
try {
console.log(calculate('1+')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid expression
}
try {
console.log(calculate('1/a')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Invalid operands
}
try {
console.log(calculate('4/0')); // 抛出错误
} catch (error) {
console.error('Error:', error.message); // 输出:Error: Cannot divide by zero
}
} catch (error) {
console.error(error.message);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化