在 Javascript 中添加开关大小写

Switch case addition in Javascript

本文关键字:开关 大小写 添加 Javascript      更新时间:2023-09-26

我想使用这个开关大小写,但它不起作用:

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");
    }

它是你的num1num2是字符串 - 它们的总和是串联的字符串。此外,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");
    }