簡體   English   中英

切換Java中的大小寫

[英]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;

有人可以幫我嗎?

因為您的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");
    }

您只需打開括號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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM