2016-06-29 58 views
-1

我做的石头,剪子,布上Codecademy网站JavaScript类,语法错误:意外标记{

我卡上的模块之一,不断收到“语法错误:意外的标记{”

这真的很奇怪!提示将不会运行,除非我删除所有大括号({})....但我需要花括号在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)。最后,除非rockpaperscissors在别处定义的,你需要让他们的字符串:

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

@torazaburo真的,谢谢你的追捕 –

+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

使用三元运算符来节省自己的精神痛苦。

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

我需要使用ternary更多 –

+0

@torazaburo感谢您的锐利编辑和简单的解决方案。 –