2017-02-21 3 views
1

Я понятия не имею, где ошибка больше. Сначала я сказал, что у меня был неожиданный идентификатор, тогда у меня был непревзойденный}, теперь у меня есть незаконный оператор возврата. Мне просто нужна помощь. Благодарю.Я понятия не имею, где ошибка больше

var userChoice = prompt("Do you choose rock, paper or scissors?"); 
var computerChoice = Math.random(); 
if (computerChoice < 0.34) { 
    computerChoice = "rock"; 
} else if (computerChoice <= 0.67) { 
computerChoice = "paper"; 
} else { 
    computerChoice = "scissors"; 
} 
console.log("Computer: " + computerChoice); 
var compare = function(choice1, choice2) { 
    if (choice1 === choice2) { 
     return "The result is a tie!"; 

    } else if (choice1 === "rock") { 
     if (choice2 === "scissors") { 
      return "rock wins"; 
     } else { 
      return "paper wins"; 
     } 
     if (choice2 === "rock") { 
      return "paper wins"; 
     } else { 
      return "scissors wins"; 
     } else if (choice1 === "paper") { 
      if (choice2 === "rock") { 
       return "paper wins"; 
      } else { 
       return "scissors wins"; 
      } 
     } 
+0

Отсутствует закрывающая фигурная фигурная скобка. – geeves

+0

Работает ли она, чтобы установить computerChoice как номер в первую очередь а затем как строка позже? Просто любопытно. У меня, вероятно, было бы 2 переменных, по одному для каждого типа. – Forklift

+1

В строке 31 есть «else if», которая следует за «else». Это «Else If» никогда не будет достигнуто. В JavaScript это нормально для переменной, которая должна быть числом, а затем быть строкой. – geeves

ответ

1
var userChoice = prompt("Do you choose rock, paper or scissors?"); 
var computerChoice = Math.random(); 
if (computerChoice < 0.34) { 
    computerChoice = "rock"; 
} else if (computerChoice <= 0.67) { 
    computerChoice = "paper"; 
} else { 
    computerChoice = "scissors"; 
} 
console.log("Computer: " + computerChoice); 
var compare = function (choice1, choice2) { 
    if (choice1 === choice2) { 
     return "The result is a tie!"; 
    } else if (choice1 === "rock") { 
     if (choice2 === "scissors") { 
      return "rock wins"; 
     } else { 
      return "paper wins"; 
     } 
     if (choice2 === "rock") { 
      return "paper wins"; 
     } else if (choice1 === "paper") { 
      if (choice2 === "rock") { 
       return "paper wins"; 
      } else { 
       return "scissors wins"; 
      } 
     } 
    } 
} 

Правильно отступом код может помочь найти недостающие фигурные скобки. К тому времени, когда что-то отступом 4 раза, пришло время посмотреть, можно ли его реорганизовать.

Например:

Первое, если есть возвращение. После этого нет причин иметь «else if». Это избавится от одного отступа. То же самое можно сказать о («choice2 ===» rock »). Доверяйте, что, когда возвращается запись о том, что он действительно вернется.

+0

Поскольку это выглядит как проблема codewars.com или другая проблема, я думаю, что лучше всего реорганизовать ее немного, вместо того, чтобы получать рефакторизованный код. :) Удачи, ты получишь. – geeves

+1

Приобретено за большой совет по примеру кода. – Forklift

+1

geeves, спасибо за совет и помощь! Это действительно помогло мне и застало меня увидеть мою ошибку. Спасибо. Вверх проголосовали за отзывы и объяснения. –

Смежные вопросы