繁体   English   中英

如果if语句起作用,为什么switch不起作用

[英]Why switch doesn't work while if statement does work

在以下简单脚本中,我需要一些有关switch出问题的帮助。

var pp = 1;
switch (pp) {
    case pp == 1:
        var p = "A";
        break;
    default:
        var p = "F";
        break;
}

document.write(p); //display "F" ---??? it should be "A".

if (pp == 1) document.write("A"); //display "A"

您使用的是switch - case语法错误,

  switch(pp){
      case 1  : var p="A"; break;
      default : var p="F"; break;
  }

您也可以像下面这样编写代码,

var p = pp ? "A" : "F"; //And this code is valid for your given data only.

您正在重新评估pp的值。

应该

case 1:
....
break;

Javascript转换原因应遵循以下格式

switch(expression) {
case n:
    code block
    break;
case n:
    code block
    break;
default:
    default code block
}

因此,情况pp == 1格式错误。它应如下所示正确

<script>
          var pp=1;
          switch(pp){
              case 1  : var p="A"; break;
              default : var p="F"; break;
          }
          document.write(p);

          if (pp==1) document.write("A");

   </script>

如果您确实需要对每种情况进行重新评估,则可以将true作为表达式传递给switch语句:

 var p, pp = 1; switch (true) { case pp === 1: p = 'A'; break; default: p = 'F'; } console.log(p); // p should be "A" if (pp === 1) { console.log('A'); // display "A" } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM