2016-04-09 19 views
-2

Syntaxfehler auf meiner else-Anweisung erhalten Ich habe den Code umgeschrieben und aus bekannten guten Aussagen eingefügt. Was vermisse ich? Sein angenommenes math.random nur prüfen und in einer if/elseJavascript if/else Syntaxfehler

var userChoice = prompt("Do you choose rock, paper, or scissors"); 
 
var computerChoice = Math.random(); 
 

 
if (computerChoice =< .33) 
 
{ 
 
    computerChoice = "Rock"; 
 
} 
 

 
else if (computerChoice > .33 && computerChoice =< .66) 
 
{ 
 
    computerChoice = "Paper"; 
 
} 
 

 
else 
 
{ 
 
    computerChoice = "Scissors"; 
 
}

+3

setzen Sie eine Null vor den Dezimalstellen. if (computerChoice = <.33) – JordanHendrix

+0

haben Sie Ihren logischen Operator in die falsche Richtung gebracht. <= not = 2/3) {} else {} 'Math.random() verwendet die gleiche Anzahl von Dezimalstellen wie 1/3 oder 2/3 – vahanpwns

Antwort

3

Paar von schnellen Lösungen vergleichen:

Verwenden Sie eine 0 vor allen Dezimalstellen Verwendung <= statt von =<

Das sind die einzigen Korrekturen, die ich gemacht habe, sah ich sie in der Sekunde, die ich sie in ein JSBin

eingefügt habe

JsBin with corrected code

var userChoice = prompt("Do you choose rock, paper, or scissors"); 
var computerChoice = Math.random(); 

if (computerChoice <= 0.33) 
{ 
    computerChoice = "Rock"; 
} 

else if (computerChoice > 0.33 && computerChoice <= 0.66) 
{ 
    computerChoice = "Paper"; 
} 

else 
{ 
    computerChoice = "Scissors"; 
} 
+1

Das habe ich mir selbst beigebracht javascript ID hätte nie gedacht, die Betreiber so zu überprüfen DANKE !!! !!! –

+0

Sie sind willkommen, mein Herr! viel Glück da draußen! – JordanHendrix

0
var userChoice = prompt("Do you choose rock, paper, or scissors");  
var choices = ["Rock", "Paper", "Scissors"]; 
var rand = Math.round(Math.random() * (choices.length-1)); 
computerChoice = choices[rand]; 

So etwas wie dies funktionieren könnte.

+0

Das wird nicht funktionieren ... 'rand' muss eine Ganzzahl sein. – Mottie

+0

Sie haben Recht, ich sollte ein Math.round um es hinzufügen :) – theCodeSurgeon

+0

'var Rand = Math.floor (Math.random() * Wahlmöglichkeiten.length);' – vahanpwns

0

Sie haben Ihren logischen Operator in die falsche Richtung gebracht. Es sollte <= nicht =< sein.

Wie auch immer, die IF THEN ELSE ist hier nicht wirklich notwendig, und obwohl andere Antworten auf der richtigen Spur sind, ist es nicht nötig zu zählen, wie viele Elemente in dem Array. Es wird immer 3 mögliche Ergebnisse in diesem Spiel geben:

var userChoice = prompt("Do you choose rock, paper, or scissors"); 
var computerChoice = ['Rock','Paper','Scissors'][Math.floor(Math.random() * 3)];