JS Switch计算器数量限制器
JS Switch calculator number limiter
我需要限制计算器的最大和最小输出值。我尝试了多种方法,总是报错。然后我尝试了这个,声明结果变量以便我可以捕获它并为我的限制器设置 if 语句,这次没有错误,但它不起作用。
let calc = function (operator, a, b = undefined) {
let result
if(result > 9999 || result < -9999) {
console.log('Digit limit')
}
switch (operator) {
case '+':
result = a + b;
return result
case '-':
result = a - b;
return result
case '*':
result = a * b;
return result
case '/':
if (a === 0 || b === 0) {
alert('Invalid operation');
}
result = a / b;
return result
case 'pow':
result = Math.pow(a, b);
return result
case 'log':
if (a <= 0) {
return NaN
}
result = Math.log(a);
return result
case 'sqrt':
if (a <= 0) {
return NaN
}
result = Math.sqrt(a);
return result
}
}
您不必 return 在 switch
内。根据运算符和中断确定结果。之后,return result
.
console.log(calc("+", 2, 5));
console.log(calc("/", 2, 0)); // throws
console.log(calc("pow", 2, 8));
console.log(calc("pow", 10, 20));
function calc(operator, a, b = 0) {
let result = 0;
switch (operator) {
case '+':
result = a + b; break;
case '-':
result = a - b; break;
case '*':
result = a * b; break;
case '/':
result = (a === 0 || b === 0)
? 'Invalid operation (a or b = 0)'
: a / b; break;
case 'pow':
result = a**b; break;
case 'log':
result = a <= 0 ? NaN : Math.log(a); break;
case 'sqrt':
result = a <= 0 ? NaN : Math.sqrt(a);
default: result = "unknown operator";
}
// now return
return Math.abs(result) > 9999
? "invalid (> 9999 or < -9999)"
: result;
}
我需要限制计算器的最大和最小输出值。我尝试了多种方法,总是报错。然后我尝试了这个,声明结果变量以便我可以捕获它并为我的限制器设置 if 语句,这次没有错误,但它不起作用。
let calc = function (operator, a, b = undefined) {
let result
if(result > 9999 || result < -9999) {
console.log('Digit limit')
}
switch (operator) {
case '+':
result = a + b;
return result
case '-':
result = a - b;
return result
case '*':
result = a * b;
return result
case '/':
if (a === 0 || b === 0) {
alert('Invalid operation');
}
result = a / b;
return result
case 'pow':
result = Math.pow(a, b);
return result
case 'log':
if (a <= 0) {
return NaN
}
result = Math.log(a);
return result
case 'sqrt':
if (a <= 0) {
return NaN
}
result = Math.sqrt(a);
return result
}
}
您不必 return 在 switch
内。根据运算符和中断确定结果。之后,return result
.
console.log(calc("+", 2, 5));
console.log(calc("/", 2, 0)); // throws
console.log(calc("pow", 2, 8));
console.log(calc("pow", 10, 20));
function calc(operator, a, b = 0) {
let result = 0;
switch (operator) {
case '+':
result = a + b; break;
case '-':
result = a - b; break;
case '*':
result = a * b; break;
case '/':
result = (a === 0 || b === 0)
? 'Invalid operation (a or b = 0)'
: a / b; break;
case 'pow':
result = a**b; break;
case 'log':
result = a <= 0 ? NaN : Math.log(a); break;
case 'sqrt':
result = a <= 0 ? NaN : Math.sqrt(a);
default: result = "unknown operator";
}
// now return
return Math.abs(result) > 9999
? "invalid (> 9999 or < -9999)"
: result;
}