2012-01-22 4 views
1

다음 코드에서 예기치 않은 토큰을 찾고 있습니다.자바 스크립트에서 예기치 않은 토큰 전환

 switch (hobby) { 
      case =" painting ": 
       message = "Van Gogh was good at that."; 
        break; 
      case =" drawing ": 
       message = "Hey! Van Gogh did that too."; 
        break; 
      case =" playing guitar ": 
       message = "Bob Dylan played guitar."; 
        break; 
      case =" sleeping in ": 
       message = "My favorite hobby in the winter."; 
        break; 

      default 
     } 

실종보고 싶은 사람이 있습니까?

+0

전환 전의 코드에는 var hobby = prompt ("무엇을 하시겠습니까? 그림 그리기, 기타 연주, 또는 잠 들어 있습니다.")가 있습니다. – FileasFogg

+0

끝나는 기본 행은 실제로 현재 코드에 없습니다. – FileasFogg

+0

누락 된 것이 아니라, 추가하는 것입니다.) 일반적으로, 당신이 정말로 * 중요하지 않은 한, 기본 핸들러를 갖고 싶을 것입니다. 이 효과에 대한 의견은 향후 코드 독자에게 도움이 될 수 있습니다. –

답변

2

구문이 꺼져 있습니다. case 초 후에 =을 삭제하십시오. 또한 default 뒤에 :을 입력해야합니다.

switch 진술에 대한 자세한 내용은 here을 참조하십시오.

+0

또한 대소 문자 피연산자의 공백을 제거해야합니다 (예 :''painting ''을'' 그림 "), 사용자가 대답 앞뒤에 공백을 넣지 않기 때문입니다. (질문과 직접적으로 관련이 없기 때문에 이것을 내 대답 대신에 주석으로 추가하고 있습니다.) – cheeken

4

case에서 break을 피하기 위해 기능의 의미를 활용할 수 있습니다 :

var message = (function(){ 
    switch (hobby) { 
    case 'painting':  return 'Van Gogh was good at that.' 
    case 'drawing':   return 'Hey! Van Gogh did that too.' 
    case 'playing guitar': return 'Bob Dylan played guitar.' 
    case 'sleeping in':  return 'My favorite hobby in the winter.' 
    } 
}()) 

가장 좋은 방법은이 논리를 표현하지만, 아마 다음과 같은 것입니다 :

var messages = { 
    'painting':  'Van Gogh was good at that.', 
    'drawing':  'Hey! Van Gogh did that too.', 
    'playing guitar': 'Bob Dylan played guitar.', 
    'sleeping in': 'My favorite hobby in the winter.' 
} 
var message = messages[hobby] 
+0

그리고'default : return ''; – darvids0n

관련 문제