【问题标题】:Displaying an invalid output in JavaScript [duplicate]在 JavaScript 中显示无效输出 [重复]
【发布时间】:2020-12-15 13:08:49
【问题描述】:

我做了下面的代码。但最终的答案并没有到来。它总是显示为“无效输入”。我能知道它的原因吗? :) 我的 switch 语句有问题吗?太感谢了。祝您有美好的一天,并保持安全!

<html>
<head>
    <script language="JavaScript" type="text/javascript">
 function link()
 {
     var r=prompt("Enter the operation:"+'\n'+"1-addition  2-sub 3-div 4- mul");
 
     if(r>4)
     {
         alert("invalid input");
     }
     else {
 var n1=prompt("1st number:");
 var n2=prompt("2nd number:");
a=n1+n2;
s=n1-n2;
d=n1/n2;
m=n1*n2;

switch(r)
{
    case 1:document.write("Addition answer = "+a);break;
    case 2:document.write("Substraction answer = "+s);break;
    case 3:document.write("Division answer = "+d);break;
    case 4:document.write("Multiplication answer = "+m);break;
    default:document.write("invalid Input");
}
 
    } }
    </script>

</head>

<body>

<script language="JavaScript" type="text/JavaScript" >

</script>    

<input type="button" value="maths" onclick=link()>
  
<script src="java.js"></script>
</body>
</html>

【问题讨论】:

  • window.prompt returns a string,你的 switch 语句正在打开数字。所以你总是会点击默认值。您需要将用户输入解析为整数。
  • 如果rn1n2 也检查isNaN,如果n1n2 之一不是数字,则设置错误。

标签: javascript


【解决方案1】:

提示给你一个字符串,你应该使用 parseInt

<html>
<head>
    <script language="JavaScript" type="text/javascript">
 function link()
 {
     var r=prompt("Enter the operation:"+'\n'+"1-addition  2-sub 3-div 4- mul");
     r = parseInt(r);
 
     if(r>4)
     {
         alert("invalid input");
     }
     else {
 var n1=prompt("1st number:");
 var n2=prompt("2nd number:");
 let x = parseInt(n1)
 let y = parseInt(n2)
 
a=x+y;
s=x-y;
d=x/y;
m=x*y;

switch(r)
{
    case 1:document.write("Addition answer = "+a);break;
    case 2:document.write("Substraction answer = "+s);break;
    case 3:document.write("Division answer = "+d);break;
    case 4:document.write("Multiplication answer = "+m);break;
    default:document.write("invalid Input");
}
 
    } }
    </script>

</head>

<body>

<script language="JavaScript" type="text/JavaScript" >

</script>    

<input type="button" value="maths" onclick=link()>
  
<script src="java.js"></script>
</body>
</html>

【讨论】:

    【解决方案2】:

    将字符串转换为整数。试试下面的代码。

    function link()
     {
         var r=parseInt(prompt("Enter the operation:"+'\n'+"1-addition  2-sub 3-div 4- mul"));
     
         if(r>4)
         {
             alert("invalid input");
         }
         else {
     var n1=parseInt(prompt("1st number:"));
     var n2=parseInt(prompt("2nd number:"));
    a=n1+n2;
    s=n1-n2;
    d=n1/n2;
    m=n1*n2;
    
    switch(r)
    {
        case 1:document.write("Addition answer = "+a);break;
        case 2:document.write("Substraction answer = "+s);break;
        case 3:document.write("Division answer = "+d);break;
        case 4:document.write("Multiplication answer = "+m);break;
        default:document.write("invalid Input22");
    }
     
        } }
    &lt;input type="button" value="maths" onclick=link()&gt;

    【讨论】:

      猜你喜欢
      • 2018-10-10
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2021-06-12
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多