Условный оператор Версия в формате PDF Версия для печати Отправить на e-mail
В том случае если программные блоки операторов i f и else состоят из одиночных строк, программный код можно сделать более компактным, воспользовавшись вместо конструкции if-else условным оператором ?...:.... Приведем простейший пример использования данного оператора, где в одной строке кода мы определяем цену билета в зависимости от возраста покупателя: price =   (age < 18  ?   "5 p."   :   "10 р.");
Еели заменить эту строку на обычную конструкцию if-else, получится более длинный код: if  (age < 18)
price = "5 p."; else
price = "10 p.";
Конструкции с условным оператором можно использовать внутри выражений. Предположим, что и вашей компании оптовым покупателям, закупившим товар более чем на 10 000 р., предоставлена скидка в виде бесплатной доставки товара, тогда как покупатели, которые приобрели товар в розницу, платят за доставку еще 300 р. Создадим соответствующий код программы с использованием условного оператора: total_price = price +   (price <  10000  ? 300   :   0);
Теперь эта же программа с использованием конструкции if-else: if   (price <  10000)
total_price = price + 300; else
total_price = price
Экономия места очевидна.
Посмотрите еще один пример использования условного оператора для выравнивания вывода числовых значении на экран без применения таблицы. Допустим, нам нужно вывести массив данных со значениями в диапазоне от единиц до сотен. Мы хотим разместить
значения в строках и колонках так, чтобы цифры в разных строках
располагались строго по линии друг над другом. Это не так просто
сделать, учитывая, что однозначные, двузначные и трехзначные числа
имеют разную длину. Введите код программы из листинга 5.9.
Листинг 5.9. Выравнивание значений в колонках
<SCRIPT>
for   (i=l;i<56;i++)   I
num = Math.round(Math.iandom() 998  + 1);
output =   (num <  10  ?   "....."   :   "...");
output +-   (num <  100  ?   ".."+num  :   num);
document.write(output);
if   (i   %  10  ==  0)
document .write ("<BR>1') ;
) </SCRIPT>
В сценарии запускается цикл for. Число циклов в данном случае не столь важно, лишь бы их было достаточно для создания наглядного массива данных. Массив целых чисел в диапазоне от 1 до 999 генерирует строка кода Math.round(Math.random() 998 + 1). Затем мы формируем строку вывода output, прибавляя к числовому значению точки таким образом, чтобы строки с однозначными, двузначными и трехзначными цифрами были одинаковой длины. Обратите внимание на использование условного оператора для заполнения строк вывода. После каждого десятого значения выводится новая строка. Для этого проверяем, делится ли счетчик цикла for на 10 без остатка, используя, оператор деления, но модулю. (Подробно об операторе деления, но модулю рассказывалось в главе 4.)
Вы можете видоизменить сценарий в листинге 5.9 таким образом, чтобы выравнивались не только числовые значения, но и небольшие слова. Попытайтесь сделать это самостоятельно. Вспомните, что длину слова в сценарии JavaScript можно определить следующим образом: слово.length.

 
< Пред.   След. >

Голосования

Хорошо ли Вы знаете JavaScript?
 

Calendar

IP:

54.234.180.187