为了账号安全,请及时绑定邮箱和手机立即绑定

与提示函数结合使用时,switch 语句始终执行 default case

与提示函数结合使用时,switch 语句始终执行 default case

Smart猫小萌 2023-10-24 15:05:29
我在 HTML 中编写了以下 switch 语句:<script>    const day = prompt("Enter day number: ");    switch (day) {        case 1:            document.write("Sun");            break;        case 2:            document.write("Mon");            break;        case 3:            document.write("Tue");            break;        default:            document.write("Wrong Choice");    }</script>Wrong Choice即使我通过1或2
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

prompt总是返回一个string,并且 case 与===- 字符串不会===与数字进行比较。将您的 case 改为字符串:


const day = prompt("Enter day number: ");

switch (day) {

  case '1':

    document.write("Sun");

    break;

  case '2':

    document.write("Mon");

    break;

  case '3':

    document.write("Tue");

    break;

  default:

    document.write("Wrong Choice");

}

但switch相当冗长并且容易出错。考虑使用对象或数组代替:


const days = [, 'Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'];


const dayNum = prompt("Enter day number: ");

const day = days[dayNum] || 'Invalid';

console.log(day);


查看完整回答
反对 回复 2023-10-24
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我猜它是作为字符串传递的。试着做


   <script>

const day = prompt("Enter day number: ");

switch (day) {

    case ‘1’:

        document.write("Sun");

        break;

    case ‘2’:

        document.write("Mon");

        break;

    case ‘3’

        document.write("Tue");

        break;

    default:

        document.write("Wrong Choice");

}

</script>


查看完整回答
反对 回复 2023-10-24
  • 2 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信