Однако существует еще два возможных случая. Что, если пользователь введет число меньше 0? Что, если он введет значение, которое не является числом? Первый случай читатель может теперь обработать самостоятельно. Второй случай требует использования другой встроенной функции, isNaN. При попытке преобразовать что-нибудь в число с помощью функции parseInt, возвращается значение NaN, если функция не может выполнить операцию. NaN означает Not a Number (Не число). Если вызвать функцию parseInt, например, со значением apple, то будет получено значение NaN, так как слово apple не является числом.


var apples = 5;alert('Имеется ' + apples + ' яблок!');var eat = prompt('Сколько яблок вы хотите съесть?', '1');var eaten = parseInt(eat);if(isNaN(eaten)){ alert('Вы должны ввести допустимое число яблок!');} else if(eaten > apples){ alert('Простите, но имеется только ' + apples + ' яблок. Вы не можете съесть ' + eaten + ' яблок!');} else if(eaten < 0){ alert('Простите, но вы не можете съесть отрицательное количество яблок!');} else { apples -= eaten; alert('А теперь имеется только ' + apples + ' яблок!');}


Теперь все это должно быть понятно читателю. Прежде всего проверяется, что введено допустимое значение. Если значение недопустимо, выводится соответствующее сообщение. Затем проверяется, что введенное число не превышает количество существующих яблок, а затем - что это число не является отрицательным. Если все эти проверки проходят успешно, пользователь сможет съесть столько яблок, сколько захочет. В коде сделано еще одно изменение, вместо if(eaten > 5) используется if(eaten > apples). Если в последующем количество имеющихся яблок var apples = 5; изменится, то это изменение пришлось бы делать только в одном месте. Старайтесь всегда использовать в коде переменные.



7 из 105