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"));
这段代码有什么问题? 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"));