Условие Javascript не является точным для меня

#javascript #conditional-statements

Вопрос:

Я пытаюсь получить больший балл для печати, он работает для чисел до 10, однако по непонятной мне причине числа выше 10 работают не так, как ожидалось, например, первый балл равен 10, а второй-5, но он будет печатать 5 вместо 10.

 var firstScore = prompt('First exam score?');
var secondScore = prompt('Second exam score?');

if (firstScore > secondScore) {
  console.log(firstScore);
} else if (secondScore > firstScore) {
  console.log(secondScore);
} else {
  console.log('Wrong parameter');
} 

Комментарии:

1. Это потому, что приглашение возвращает текст, даже если вы вводите только цифры. Вам нужно var firstScore = parseInt(prompt('First exam score?')); вместо этого (и то же самое, очевидно, для 2-го числа)

Ответ №1:

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

 var firstScore = parseInt(prompt('First exam score?'))
var secondScore = parseInt(prompt('Second exam score?'))

if (firstScore > secondScore) {
    console.log(firstScore);
} else if (secondScore > firstScore) {
    console.log(secondScore);
} else {
    console.log('Wrong parameter');
}
 

Ответ №2:

Дело в том, что вы пытаетесь сравнить две строки, попробуйте проанализировать результат, полученный из вашей подсказки, в целое число или с плавающей точкой с помощью parseInt (), как это :

 var firstScore = parseInt(prompt('First exam score?'));
var secondScore = parseInt(prompt('Second exam score?'));

if (firstScore > secondScore) {
    console.log(firstScore);
} else if (secondScore > firstScore) {
    console.log(secondScore);
} else {
    console.log('Wrong parameter');
}