簡體   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