#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');
}