ternario son que operador operaciones las ejemplos ejemplo condicionales condicional c++ conditional-operator

c++ - son - operador ternario python



¿Cómo uso el operador condicional? (8)

Siempre me he preguntado cómo escribir la sintaxis "A ? B : C" en un lenguaje compatible con C ++.

Creo que funciona algo así como: (Pseudo código)

If A > B C = A Else C = B

¿Algún programador veterano de C ++ me ayude?


Funciona así:

(condition) ? true-clause : false-clause

Es más comúnmente utilizado en operaciones de asignación, aunque también tiene otros usos. El operador ternario ? es una forma de acortar una cláusula if-else, y también se llama una declaración if inmediata en otros lenguajes ( IIf(condition,true-clause,false-clause) en VB, por ejemplo).

Por ejemplo:

bool Three = SOME_VALUE; int x = Three ? 3 : 0;

es lo mismo que

bool Three = SOME_VALUE; int x; if (Three) x = 3; else x = 0;


Yo diría el? es un atajo. Sin embargo, algunos programadores "duros" tienden a decir que lo escriben por mucho tiempo para que, en casos futuros, las personas puedan leer y modificar el código fácilmente.

Por ejemplo, si escribes

int a = b<c ? b : c;

Algunas personas afirman que es más claro escribir:

if(b<c) a = b; else a = c;

Porque en casos futuros, las personas pueden atraparlo. Por supuesto, un simple b <c? b: c es fácil de atrapar, pero a veces se realizan operaciones complejas y puede ser difícil de detectar.


Nadie parece mencionar que un resultado de la expresión de operador condicional puede ser un valor L en C ++ (pero no en C). El siguiente código se compila en C ++ y funciona bien:

int a, b; bool cond; a=1; b=2; cond=true; (cond? a : b) = 3; cout << a << "," << b << endl;

El programa anterior imprime 3, 2

Sin embargo, si a y b son de diferentes tipos, no funcionarán. El siguiente código proporciona un error de compilación:

int a; double b; bool cond; a=1; b=2; cond=true; (cond? a : b) = 3; cout << a << "," << b << endl;


ES BASTANTE SIMPLE, SU SINTAXIS BÁSICA ES: expression1? Expression2: expression3;

Si la expresión 1 es verdadera, entonces la expresión 2 se mantendrá, de lo contrario la expresión 3 se mantendrá.

ejemplo:

hey=24>2?24:34;

aquí, como condición, se le asignará un valor verdadero de 24. si fuera falso, se le asignarán 34


simplemente puedes escribir esto como

C = (A> B)? A: B;

ESTO ES LO MISMO QUE:

if(A>B) C=A; else C=B;


En c ++ no hay parte real de esto. Se llama operador ternario. Se usa así: <declaración booleana>? <resultado si es verdadero>: <resultado si es falso>; Para su ejemplo anterior, se vería así:

C = A > B ? A : B;

Este artículo en wikipedia también lo discute: http://en.wikipedia.org/wiki/Ternary_operation


Funciona así:

expression ? trueValue : falseValue

Lo que básicamente significa que si la expression evalúa como verdadera, se devolverá o se ejecutará TrueValue, y falseValue se devolverá o evaluará si no.

Recuerde que trueValue y falseValue solo se evaluarán y ejecutarán si la expresión es verdadera o falsa, respectivamente. Este comportamiento se llama cortocircuito.


Supongo que te refieres a cosas como a = b? c: d, donde b es la condición, c es el valor cuando b es verdadero, y d es el valor cuando b es falso.