• Страница 1 из 1
  • 1
Модератор форума: webik  
Форум » JavaScript и jQuery » JavaScript » Условные выражения » Практикум по работе с условными выражениями (используем функции parseInt() и isNaN())
Практикум по работе с условными выражениями
webikДата: Сб, 23.03.2019, 00:11 | Сообщение # 1
Offline
В этом уроке напишем небольшую программу, в которой спрашиваем у пользователя его счастливое число и, в зависимости от его ответа, выполняем определённые действия.

В частности, нам нужно учесть вероятность того, что пользователь в ответе может ввести, к примеру, не число, а просто набор букв типа оывлао.

Итак, приступаем.

В шапке страницы размещаем первую пару тегов JavaScript, в которой с помощью уже известной нам команды prompt() запрашиваем у пользователя ответ и сохраняем его в переменную счастливоеЧисло :

Код
<script>
var счастливоеЧисло = prompt('Какое ваше счастливое число?', '');
</script>


В теле страницы открываем вторую пару тегов JavaScript:

Код
<script>
if(счастливоеЧисло == 7) {
  
  document.write("<p>Эй, 7 - это и моё счастливое число тоже!</p>");

}
</script>


В данном случае программа будет работать следующим образом: если пользователь на запрос "Какое ваше счастливое число?" введёт ответ 7, то увидит текст "Эй, 7 - это и моё счастливое число тоже!". Во всех других случаях не произойдёт ничего.
Потому что альтернативного кода мы еще не прописали. Исправляемся:

Код
<script>
if(счастливоеЧисло == 7) {
  
  document.write("<p>Эй, 7 - это и моё счастливое число тоже!</p>");

} else {

document.write("<p>Число " + счастливоеЧисло + " является для вас счастливым!</p>);

}
</script>


Теперь, если пользователь введёт что-то, отличное от цифры 7, то получит результат: "Число .... является для вас счастливым!" (вместо многоточия будет то, что ввёл пользователь)

Можно расширить программу, добавив альтернативы с помощью else if и оператора "ИЛИ":

Код
<script>
if(счастливоеЧисло == 7) {
  
  document.write("<p>Эй, 7 - это и моё счастливое число тоже!</p>");

} else if (счастливоеЧисло == 13 || счастливоеЧисло == 24) {

document.write("<p>Ой. " + счастливоеЧисло + "? Это несчастливое число!");

else {

document.write("<p>Число " + счастливоеЧисло + " является для вас счастливым!</p>);

}
</script>


Вроде всё замечательно, но есть одно "но". Если пользователь введёт в ответе не число, а например, набор букв типа абв, то он получит в ответ "Число абв является для вас счастливым!"

В этом случае нам в первой паре тегов JavaScript нужно задействовать функцию parseInt(), которая будет пытаться превратить строковое значение в целое число:

Код
<script>
var счастливоеЧисло = prompt('Какое ваше счастливое число?', '');
счастливоеЧисло = parseInt(счастливоеЧисло, 10);
</script>


Команда parseInt() не сможет превратить строку абв в число. поэтому выдаст специальное значение JavaScript - NaN (означает "не число").
Можно это использовать, чтобы вызвать новое диалоговое окно,в котором попросить пользователя ввести число. Тут мы задействуем другую функцию, isNaN(), которая проверяет, является ли значение переменной счастливоеЧисло "нечислом".

Код
<script>
var счастливоеЧисло = prompt('Какое ваше счастливое число?', '');
счастливоеЧисло = parseInt(счастливоеЧисло, 10);
if(isNaN(счастливоеЧисло)) {

счастливоеЧисло = prompt('Пожалуйста, сообщите мне своё счастливое число.', '');
}
</script>


Теперь, когда пользователь введёт в ответе не число, а просто набор букв например, откроется окно с просьбой всё-таки ввести счастливое число. Казалось бы проблема решена? Нет. Ведь если и в этот раз он опять введёт не число, мы столкнемся с той же проблемой, он увидит это:

"Число .... является для вас счастливым!" (вместо многоточия будет то, что ввёл пользователь). Проверьте работу скрипта и поймёте о чём идёт речь.
 
профиль цитата изменить удалить
Форум » JavaScript и jQuery » JavaScript » Условные выражения » Практикум по работе с условными выражениями (используем функции parseInt() и isNaN())
  • Страница 1 из 1
  • 1
Поиск: