我想使用这个开关大小写,但它不起作用:
switch(parseInt(num1),parseInt(num2),op)
{
case '+': resultat=(num1+num2);break;
case '-': resultat=(num1-num2);break;
case '*': resultat=(num1*num2);break;
case '/': resultat=(num1/num2);break;
case '<': resultat=(num1<num2);break;
case '>': resultat=(num1>num2);break;
case '%': resultat=(num1%num2);break;
default:alert("Erreur: opérateur inconnu");
}
num1 和 num2 是在之前用提示命令收集的,它们是数字。它们使用 parseInt() 从链转换为数字。op 是一个运算符,如 *、/、+、-、% 或>、<。它也通过提示命令收集。我只想做一个加法,比如 3+5=8。一切都可以添加...它返回答案 35。我不明白为什么即使我把它放在 ()之间也看不到添加...如您所见:案例 '+': resultat=(num1+num2);break;
有人可以帮我吗?
您只打开括号中的最后一项,op
.parseInts 没有做任何事情。因此,您的+
块仍将它们视为字符串并连接。
num1 = parseInt(num1);
num2 = parseInt(num2);
switch(op)
{
case '+': resultat=(num1+num2);break;
case '-': resultat=(num1-num2);break;
case '*': resultat=(num1*num2);break;
case '/': resultat=(num1/num2);break;
case '<': resultat=(num1<num2);break;
case '>': resultat=(num1>num2);break;
case '%': resultat=(num1%num2);break;
default:alert("Erreur: opérateur inconnu");
}
它是你的num1
,num2
是字符串 - 它们的总和是串联的字符串。此外,parseInt
返回解析的值,不要更改变量值。请改为执行以下操作:
switch(op)
{
case '+': resultat=(parseInt(num1)+parseInt(num2));break;
case '-': resultat=(parseInt(num1)-parseInt(num2));break;
case '*': resultat=(parseInt(num1)*parseInt(num2));break;
case '/': resultat=(parseInt(num1)/parseInt(num2));break;
case '<': resultat=(parseInt(num1)<parseInt(num2));break;
case '>': resultat=(parseInt(num1)>parseInt(num2));break;
case '%': resultat=(parseInt(num1)%parseInt(num2));break;
default:alert("Erreur: opérateur inconnu");
}