#javascript #switch-statement #logical-operators
Вопрос:
На самом деле, я работал с оператором 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 resu<
// 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 с помощью ! оператор.
Комментарии:
1. Что вы ожидаете, что произойдет с
!" "
,!"-"
,!"/"
или!"*"
? o.O2. Это не так, как работает переключатель — он проверяет, равен ли
!(operator)
(что всегда ложно, за исключением случаев, когда оператор является пустой строкой) одному из » «, «-«, «/», или «*»3.
if (![" ", "-", "*", "/"].includes(operator)) { ... }
4. Вам не нужны две инструкции switch, вы можете обрабатывать все случаи в одном коммутаторе. Я думаю, вам следует почитать больше о том, как работает переключатель.
5. Просто добавьте регистр по умолчанию в инструкцию switch
Ответ №1:
Похоже, вам нужно что-то вроде этого:
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 resu<
// alert(typeof(operator));
switch(operator){
case null:
case "":
getErrorElem.innerHTML = "Operatot field can't be empty";
break;
case " ":
case "-":
case "/":
case "*":
// Handle the right input.
break;
default:
alert("You can only input ( , -, *, /) these signs in operator field");
break;
}
}