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