[英]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.