2010-06-14 7 views
-1
function FM_log(level, text) { 

    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) { 
     case "addtoprio()":log = true; 
     case "alternaTropas()":log = false; 
     case "sendtroops()":log = false; 
     defalt: log = false; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 

스위치는 어떻게 작동합니까?javascript - 스위치가 작동하지 않습니다.

답변

8

break 문 및 당신의 방법 :

function FM_log(level, text) 
{ 
    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) 
    { 
     case "addtoprio()": 
     log = true; 
     break; 
     case "alternaTropas()": 
     log = false; 
     break; 
     case "sendtroops()": 
     log = false; 
     break; 
     default: 
     log = false; 
     break; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 
에 당신을 도움이 될 것 "기본"의 올바른 철자
2

각 경우마다 중단 명령을 추가하고 기본값을 defalt로 사용해야합니다.

4

두 문제 :

  • 당신은 각 case 절 후 break 키워드가 누락되었습니다.
  • default에 대한 맞춤법 오류가 잘못되었습니다.

. 이것에

switch (level) { 
     case "addtoprio()":log = true; break; 
     case "alternaTropas()":log = false; break; 
     case "sendtroops()":log = false; break; 
     default: log = false; break; 
    } 

More On Switch

+0

여기와 동일 : 기본값은 defalt입니다. – Aif

+0

@Aif : 그래, 그의 철자법이 옳지 않았다. – Sarfraz

2

변경을 : 스위치에 대한

function FM_log(level, text) { 

    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) { 
     case "addtoprio()":log = true; break; 
     case "alternaTropas()":log = false; break; 
     case "sendtroops()":log = false; break; 
     defalt: log = false; break; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 
0

나는 break 문을 추가하는 것이 pr을 수정하지 않은 비슷한 상황을 겪었다. oblem. 마지막으로 switch 문에 문자열 유형을 전달했는지 확인하여 문제를 해결했습니다. 귀하의 경우에는 var newStr = level + "";으로 처리 할 수 ​​있습니다. + ""은 문자열 형식인지 확인합니다. 그런 다음 switch 문에 newStr을 전달하십시오.

관련 문제