Работа условного оператора if с числовыми величинами
На данном занятии мы узнаем как работает условный оператор if с числовыми величинами.
Рассмотрим задачу: необходимо определить максимальное из двух чисел. Решим задачу двумя способами.
1 способ: значения чисел задано: х=5 и у=11
<script language="JavaScript">
var x=5
var y=11
if (x>y) alert('x - максимальное число')
else
alert('y - максимальное число')
</script>
в результате выполнения программы выдается сообщение:
2 способ: значение х и у задаются методом prompt()
<script language="JavaScript">
var x
var y
x=prompt('Введите х=','')
y=prompt('Введите у=','')
if (x>y) alert('x - максимальное число')
else
alert('y - максимальное число')
</script>
введем х=5
введем у=11
результат сравнения чисел х и у:
Получается, что при сравнении одних и тех же чисел, 5 и 11, результат сравнения совершенно разный (можно даже сказать противоположный). При решении задачи первым способом выдается верный результат (действительно число 11 больше чем число 5). Второй же способ порождает ошибку. Почему?
Метод prompt() работает со строковыми величинами. Поэтому введенные значения воспринимаются как текст. Действительно строка '5' больше чем строка '11'.
Вспомним как идет сравнение со строковыми величинами: сначала сравниваются коды первых символов, та стока больше код символа которой больше. Так в нашем примере код символа '5' больше чем код символа '1'. На этом сравнение заканчивается (как только найдется символ с большим кодом, проверка завершается). Как тогда быть, если необходимо значения ввести с помощью метода prompt().