Switch 语句不接受输入

Switch statement is not taking the input

这段代码有什么问题? switch 语句不接受输入。如果我直接声明变量 'a' 的值,那么它会显示输出。

var a = prompt("value");
console.log(fun(a));
function fun(value)
 {
    let ans = "";
    switch(value)
      {
          case 1:
            ans = "alpha";
            break;
          case 2:
            ans = "beta";
            break;
          case 3:
            ans = "gamma";
            break;
      }
   return ans;
}

您正在将整数与字符串进行比较,只需为大小写添加引号

var a = prompt("value");
console.log(fun(a));
function fun(value)
 {
    let ans = "";
    switch(value)
      {
          case "1":
            ans = "alpha";
            break;
          case "2":
            ans = "beta";
            break;
          case "3":
            ans = "gamma";
            break;
      }
   return ans;
}

Switch 使用严格相等 (===) 将 Switch 表达式匹配到 case 子句。

在您的代码中,value 是一个字符串,但您的 case 子句是数字,因此由于严格相等,字符串 value 不会被强制匹配 case 子句是数字。

您可以在将 prompt 的结果传递给函数之前将其转换为数字。

改变

var a = prompt("value");

var a = Number(prompt("value"));