【发布时间】:2021-11-04 01:05:48
【问题描述】:
实际上,我正在使用 JS switch 语句。我在 switch 语句中使用了 (!),但它不起作用。这是我的代码
function showResult(){
let firstNum = document.getElementById("num1").value;
firstNum = Number(firstNum);
let secNum = document.getElementById("num2").value;
secNum = Number(secNum);
let operator = document.getElementById("operator").value;
let getErrorElem = document.getElementById("error");
let getResElem = document.getElementById("res");
let result;
// alert(typeof(operator));
switch(operator){
case null:
case "":
getErrorElem.innerHTML = "Operatot field can't be empty";
break;
}
switch(!(operator)){
case "+":
case "-":
case "/":
case "*":
alert("You can only input (+, -, *, /) these signs in operator field");
break;
}
}
我从用户那里得到三个值,第一个数字,第二个数字和运算符字段中的运算符我只想要(+、-、*、/)这些值,除了这些值有错误消息。我使用 switch 语句来验证该字段,但不起作用。如果我使用 (if) 语句,它工作正常。请说明如何使用 switch 语句验证此字段!运算符。
【问题讨论】:
-
您希望
!"+"、!"-"、!"/"或!"*"会发生什么? o.O -
这不是 switch 的工作方式——它检查
!(operator)(除非运算符为空字符串,否则始终为假)是否等于“+”、“-”、“/”之一,或“*” -
if (!["+", "-", "*", "/"].includes(operator)) { ... } -
你不需要两个 switch 语句,你可以在一个 switch 中处理所有情况。我认为您应该详细了解 switch 的工作原理。
-
只需在你的 switch 语句中添加一个default case
标签: javascript switch-statement logical-operators