Архив рассылки Web-программирование - это просто! | Не показываются картинки? |
Добрый день, уважаемые подписчики!
Тема сегодняшнего выпуска: "Java Script: варианты выбора, конструкция switch...case".
Для углубленного изучения web-программирования (язык PHP и написание своей собственной CMS) советую подписаться на платный раздел (см. анонсы раздела "Пишем Easy CMS").
Вы уже знакомы с такой конструкцией ветвления, как if ... else. Попробуем при помощи этой конструкции написать функцию правильного склонения слова "год", а потом переписать ее с использованием более компактного оператора switch.
И так, первый вариант:
<HTML> <HEAD> <TITLE>Урок 40. Java Script: оператор множественного выбора</TITLE> </HEAD> <BODY> <SCRIPT Language="JavaScript" type="text/javascript"> var age=parseInt(prompt("Введите ваш возраст","")); if (!isNaN(age)) { var last=age%10; var last2=age%100; var def=(last>1)+(last>4)+(last==0)*2+(last>10)*10+(last2>10)*(last2<20)*2; if (def==0) { var text=" год"; } else { if(def==1) { var text=" года"; } else { var text=" лет"; } } document.write("Вам ",age,text); } else document.write("Вы не пожелали назвать свой возраст"); </SCRIPT> </BODY> </HTML> |
А вот и второй вариант:
<HTML> <HEAD> <TITLE>Урок 40. Java Script: оператор множественного выбора</TITLE> </HEAD> <BODY> <SCRIPT Language="JavaScript" type="text/javascript"> var age=parseInt(prompt("Введите ваш возраст","")); if (!isNaN(age)) { var last=age%10; var last2=age%100; var def=(last>1)+(last>4)+(last==0)*2+(last>10)*10+(last2>10)*(last2<20)*2; switch (def) { case(0): var text=" год"; break; case(1): var text=" года"; break; default: var text=" лет" } document.write("Вам ",age,text); } else document.write("Вы не пожелали назвать свой возраст"); </SCRIPT> </BODY> </HTML> |
Делает абсолютно то же самое, но выглядит гораздо компактнее и более удобочитаемо. А если условий выбора было бы больше, например. десяток? Тогда уж точно, без switch ... case не обойтись. И, напоследок, синтаксис конструкции:
switch (<Параметр>) { case(<Значение 1>): <оператор1> break case(<Значение 2>): break ... default: <оператор по умолчанию> } |
С уважением, Шуравин Александр, e-mail: megabax@rambler.ru, автор оставляет за собой право публиковать в рассылках ваши письма, если в письме прямо неоговорено нежелание его публиковать.
Архив рассылки | RSS версия | Настройки | Отписаться: На сайте / По почте
Комментариев нет:
Отправить комментарий