Условный оператор (?:)

Оператор «?:» в ActionScript является более компактным аналогом предложения if–else. Его синтаксис: condition? trueExpression: falseExpression,

где:
• condition – некоторое условие или совокупность условий;

• trueExpression – выражение (или группа выражений), которое должно быть выполнено с возвращением результата, если условие окажется истинным;

• falseExpression – выражение, результат выполнения которого нужно возвратить при ложности условия;

Обратите внимание, что оператор «?:» - единственный тернарный (требующий задания трех операндов) оператор в ActionScript.

Попробуем сравнить эффективность использования предложения if–else и оператора «?:»:

var a:Number = 1;
var b:Number = 2;
// Применяем для задания действия предложение if-else
if (a>b) {
trace(a);
} else {
trace(b); // Выводит: 2
// То же действие, но с использованием условного оператора
a>b? trace(a): trace(b); // Выводит: 2

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


В противном случае программа станет нечитабельной (или, что весьма вероятно, просто не сможет транслироваться). Наиболее оправданное применение оператора «?:» связано с присвоением переменным контекстно-зависимых значений. Например:

var per:Number = 2*Math.random(); // Генерируем случайное число от 0 до 2
var per2:Number = per>1? "big_value": "small_value"; // Значение
// переменной per2 определяется величиной per1
trace(pre2); // Выводит: small_value

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Action Script на эту тему:
Арифметические операторы
Виды операторов
Логические операторы
Операторы равенства и сравнения
Поразрядные операторы

Вернуться в раздел: Action Script / 5. Операторы