Это связано с тем, что функция prompt()
возвращает строку , а не число, из-за которого (p1score1 + p1score2 + p1score3)
создает конкатенацию строк p1score1
, p1score2
и p1score3
, а не выполнить искусственное (то есть сложение) всего на общую сумму.
Рассмотрим следующую корректировку с добавлением parseFloat()
для решения этой проблемы:
p1score1 = parseFloat( prompt(' Enter first score. ') );
p1score2 = parseFloat( prompt(' Enter second score. ') );
p1score3 = parseFloat( prompt(' Enter third score. ') );
При этом результат каждого prompt()
анализируется с числом, что означает, что типы значений для p1score1
и т. Д. Равны number
. Теперь это означает, что в этой строке будет выполняться сложение, а не конкатенация строк:
(p1score1 + p1score2 + p1score3)/3
Надеюсь, это поможет!
var player1 = prompt(" Welcome Player 1! Please Enter your name ");
alert(" Hello, " + player1 + ".");
var p1score1 = parseFloat(prompt(' Enter first score. '));
var p1score2 = parseFloat(prompt(' Enter second score. '));
var p1score3 = parseFloat(prompt(' Enter third score. '));
var p1avgScore = (p1score1 + p1score2 + p1score3) / 3;
console.log(" Congratulations " + player1 + ". Your scores are: " +
p1score1 + ", " + p1score2 + ", " + p1score3 + ".");
console.log(" Your average score of all three games are: " +
p1avgScore);