[英]Switch case addition in Javascript
我想使用這種開關盒,但是不起作用:
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。即使我將加法放在()之間,我也不明白為什么它看不到加法,如您所見:case'+':resultat =(num1 + num2); break;
有人可以幫我嗎?
因為您的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");
}
您只需打開括號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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.