2016-07-13 2 views
2

Мне нужна помощь в том, что не так с коммутатором в следующем простом скрипте.Почему переключатель не работает, если оператор работает

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" 
+6

случай 1 не случай с == 1 – Sikorski

+0

Спасибо всем, ребята ~ так вроде новых стартеров, как я. – Brad

ответ

4

Вы используете синтаксис 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. 
+1

спасибо ~ симпатичный парень – Brad

1

Вы переоцениваете значение п.п. .

Должно быть

case 1: 
.... 
break; 
+0

спасибо ~ симпатичный парень – Brad

0

Javascript Выключатель-причина должна иметь следующий формат

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

так, случай с == 1 находится в неправильном format.It должно быть правильным следующим

<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> 
+0

спасибо ~ хороший парень – Brad

0

Если вам обязательно нужно вам провести переоценку по всем случаям, которые вы можете передать 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" 
 
}

+0

спасибо ~ очень – Brad

Смежные вопросы