2016-06-29 5 views
-1

나는 바위, 종이를하고있어, Codecademy에서의 자바 스크립트 클래스 가위, 내가 점점 계속, 모듈 중 하나에 붙어구문 에러 : 예기치 않은 토큰 {

"구문 에러 : 예기치 않은 토큰을 {"

정말 이상 하네! 모든 중괄호 ({})를 제거하지 않으면 프롬프트가 실행되지 않습니다. 그러나 if/else if/else 문에 중괄호가 필요합니다.

첫 번째 {을 제거하면 "SyntaxError : Unexpected token}"오류 메시지가 나타납니다. 그래서 그것은 줄의 다음 중괄호가 주목되었습니다.

var userChoice = prompt("Do you choose rock, paper or scissors?"); 

var computerChoice = Math.random(); 

//All curly brackets are below this point 

if (computerChoice >0, computerChoice <= .33) { 
    computerChoice = rock; 
} else if (computerChoice > .33, computerChoice < .66) { 
    computerChoice = paper; 
} else (computerChoice => .66, computerChoice <= 1) { 
    computerChoice = scissors; 
} 
+1

오류를 생성하는 코드 줄을보십시오. – AD7six

+0

관련 없음 : 귀하의 조건이 귀하가 기대하는대로 작동하는지 강력히 의심합니다. 마지막 하나만 실제로 "사용"됩니다. –

+1

* if/else if/else 문에 중괄호가 필요합니다. * 실제로는 그렇지 않습니다. 또한 궁금한 점이 있지만이 구문'if (condition1, condition2)'는 어딘가에서 배웠습니까 아니면 그냥 추측 했습니까? 항상 '> 0'을 확인하는 이유는 무엇입니까? 다음 조건에서, 당신은 왜 그것이> 0.33인지를 당신이 이미 알고있을 때 검사하고 있습니까? 왜 항상 분명히'<= 1'인지 확인하고 있습니까? –

답변

3

쉼표를 사용하지 말고 별개의 조건문 인 &&을 사용하십시오. 또한 마지막 else if 대신에 불필요하므로 조건부를 모두 제거하십시오 (Math.random()이 1을 초과하지 않음). rock, paperscissors가 다른 곳에서 정의되지 않는 마지막으로, 당신은 그들에게 문자열을 만들 필요가 :

var userChoice = prompt("Do you choose rock, paper or scissors?"); 

var computerChoice = Math.random(); 

//All curly brackets are below this point 

if (computerChoice <= .33) { 
    computerChoice = "rock"; 
} else if (computerChoice < .66) { 
    computerChoice = "paper"; 
} else { 
    computerChoice = "scissors"; 
} 
+0

코드를 수정하는 동안 불필요한'> .33' 체크를 제거하지 않으시겠습니까? –

+0

@ 토라자부로 사실, 잡는 덕분에 –

+0

@ A.J. 내가하려는 일의 정확한 버전을 보여 주셔서 감사합니다. 또한 제 바위, 종이 및 가위 주위에 "따옴표"를 넣어야합니다. –

3

당신은 마지막 else if 절에 if을 놓치고 :

여기 내 코드입니다. (이 경우 AJ 바르게 지적으로하지만, 더 이상의 비교는 필요하지 않습니다, 당신은 마지막 else에 그것을 만들 경우, 다음 조건을 유지해야한다.)

는 또한 비교의 쌍 &&하지 쉼표로 구분해야 . 이에

: 괄호 표현이 간단한 표현 문으로 처리됩니다

else (computerChoice => .66, computerChoice <= 1) { 

. 구문 오류는 세미콜론 다음에 없기 때문에 발생합니다. 따라서 매달려있는 {은 파서에 이해가되지 않습니다.

2

당신은 ,를 사용하여 조건을 결합하지만, 조건 연산자하지 않습니다. 또한 else 문에 대한 조건을 추가 할 수 없습니다. 다음을 사용하십시오 :

var userChoice = prompt("Do you choose rock, paper or scissors?"); 

var computerChoice = Math.random(); 

//All curly brackets are below this point 

if (computerChoice >0 && computerChoice <= .33) { 
    computerChoice = rock; 
} else if (computerChoice > .33 && computerChoice < .66) { 
    computerChoice = paper; 
} else { 
    computerChoice = scissors; 
} 
1

정신적 고통을 덜어주기 위해 3 진법을 사용하십시오.

computerChoice = computerChoice < 1/3 ? rock : computerChoice < 2/3 ? paper : scissors; 
+0

3 자형을 더 사용해야합니다 –

+0

@ 토라자부로 날카로운 편집 및 간단한 솔루션을 이용해 주셔서 감사합니다. –

관련 문제