Условное выражение с целевым типом недоступно

Обновлено: 22.12.2024

Условный оператор ?: , также называемый тернарным, вычисляет логическое выражение и в зависимости от полученного значения true или false возвращает результат одного из двух соответствующих выражений, как показано в следующем примере.

Как показано в предыдущем примере, синтаксис условного оператора выглядит следующим образом.

Выражение condition должно принимать значение true или false . Если condition принимает значение true , вычисляется выражение consequent , а результат становится результатом операции. Если condition принимает значение false , вычисляется выражение alternative , а результат становится результатом операции. Вычисляется только выражение consequent или alternative .

Условный оператор имеет правую ассоциативность, то есть выражение формы.

Вы можете использовать следующий мнемонический прием, чтобы запомнить, как оценивается условный оператор:

Условное выражение REF

Для условного выражения REF используется следующий синтаксис:

Подобно исходному условному оператору, условное выражение REF вычисляет только одно из двух выражений: consequent или alternative .

Для условного выражения REF типы consequent и alternative должны совпадать. Условные выражения REF не имеют целевого типа.

В следующем примере иллюстрируется использование условного выражения REF:

Условный оператор и оператор if

Если использовать условный оператор вместо оператора if , может получиться более лаконичный код в случаях, когда необходимо условно вычислить значение. В следующем примере иллюстрируются два вида классификации целого числа как положительного или отрицательного:

Возможность перегрузки оператора

Определяемый пользователем тип не может перегружать условный оператор.

Читайте также: