stringtranslate.com

Operador condicional

El operador condicional se admite en muchos lenguajes de programación . Este término suele referirse a ?:como en C, C++, C# y JavaScript. Sin embargo, en Java, este término también puede referirse a &&y ||.

En algunos lenguajes de programación, como Java, el término operador condicional se refiere a operadores booleanos de circuito corto && y ||. La segunda expresión se evalúa solo cuando la primera expresión no es suficiente para determinar el valor de toda la expresión. [1]

Diferencia con el operador bit a bit

&y |son operadores bit a bit que se utilizan en muchos lenguajes de programación. La principal diferencia es que las operaciones bit a bit operan sobre los bits individuales de un numeral binario, mientras que los operadores condicionales operan sobre operaciones lógicas. Además, las expresiones anteriores y posteriores a un operador bit a bit siempre se evalúan.

si ( expresión1 || expresión2 || expresión3 )     

Si la expresión 1 es verdadera, las expresiones 2 y 3 NO se comprueban.

si ( expresión1 | expresión2 | expresión3 )     

Esto verifica las expresiones 2 y 3, incluso si la expresión 1 es verdadera.

Los operadores de cortocircuito pueden reducir los tiempos de ejecución al evitar cálculos innecesarios. También pueden evitar excepciones nulas cuando la expresión 1 verifica si un objeto es válido.

Uso en Java

clase  ConditionalDemo1 {  public static void main ( String [] args ) { int valor1 = 1 ; int valor2 = 2 ; if (( valor1 == 1 ) && ( valor2 == 2 )) System . println ( " valor1 es 1 Y valor2 es 2" ) ; if (( valor1 == 1 ) || ( valor2 == 1 )) System . println ( " valor1 es 1 O valor2 es 1" ); } }                                

"?:"

En la mayoría de los lenguajes de programación, ?: se denomina operador condicional. Es un tipo de operador ternario . Sin embargo, en la mayoría de las situaciones, el operador ternario se refiere específicamente a ?: porque es el único operador que acepta tres operandos. [2]

Uso habitual de "?:"

?:Se utiliza en expresiones condicionales. Los programadores pueden reescribir una expresión if-then-else de una manera más concisa utilizando el operador condicional. [3]

Sintaxis

condición ? expresión 1 : expresión 2      

condición: Una expresión que se evalúa como un valor booleano .

expresión 1, expresión 2: Expresiones con valores de cualquier tipo.

Si la condición se evalúa como verdadera, se evaluará la expresión 1. Si la condición se evalúa como falsa, se evaluará la expresión 2.

Debe leerse como: "Si la condición es verdadera, asigna el valor de la expresión 1 al resultado. De lo contrario, asigna el valor de la expresión 2 al resultado".

Propiedad de la asociación

El operador condicional es asociativo por la derecha, lo que significa que las operaciones se agrupan de derecha a izquierda. Por ejemplo, una expresión de la forma a ? b : c ? d : e se evalúa como a ? b : (c ? d : e). [2]

Ejemplos por idiomas

Java
clase  ConditionalDemo2 {  public static void main ( String [] args ) { int valor1 = 1 ; int valor2 = 2 ; int resultado ; booleano algunaCondición = verdadero ; resultado = algunaCondición ? valor1 : valor2 ;                           Sistema . out . println ( resultado ); } } 

En este ejemplo, como someCondition es verdadero, este programa imprime "1" en la pantalla. Utilice el operador ?: en lugar de una declaración if-then-else si esto hace que su código sea más legible; por ejemplo, cuando las expresiones son compactas y sin efectos secundarios (como asignaciones).

C++
#include <flujo de datos> int main () { int x = 1 ; int y = 2 ; std :: cout << ( x > y ? x : y ) << " es el mayor de los dos." << std :: endl ; }                         

Hay varias reglas que se aplican al segundo y tercer operandos en C++:

DO#
// condición ? primera_expresión : segunda_expresión;static double sinc ( double x ) { devuelve x ! = 0.0 ? Math.Sin ( x ) / x : 1.0 ; }            

Hay varias reglas que se aplican al segundo y tercer operandos x e y en C#:

JavaScript
var edad = 26 ; var bebida = ( edad >= 21 ) ? "Cerveza" : "Jugo" ; console . log ( bebida ); // "Cerveza"             

El operador condicional de JavaScript es compatible con los siguientes navegadores:

Chrome , Edge , Firefox (1), Internet Explorer , Opera , Safari , Android webview, Chrome para Android , Edge Mobile , Firefox para Android (4), Opera para Android, Safari en IOS, Samsung Internet , Node.js. [5 ]

Uso especial en cadena condicional

El operador ternario es asociativo por la derecha, lo que significa que se puede "encadenar" de la siguiente manera, de forma similar a una cadena if ... else if ... else if ... else. [4]

Ejemplos por idiomas

JavaScript
ejemplo de función ( ) { return condición1 ? valor1 : condición2 ? valor2 : condición3 ? valor3 : valor4 ; }                // Equivalente a:ejemplo de función ( ) { if ( condición1 ) { devolver valor1 ; } else if ( condición2 ) { devolver valor2 ; } else if ( condición3 ) { devolver valor3 ; } else { devolver valor4 ; } }                           
C/C++
const double a = expresión1 ? a1 : expresión2 ? a2 : expresión3 ? a3 : /*de lo contrario*/ a4 ;         // Equivalente a:doble a ; si ( expresión1 ) a = a1 ; de lo contrario si ( expresión2 ) a = a2 ; de lo contrario si ( expresión3 ) a = a3 ; de lo contrario /*de lo contrario*/ a = a4 ;                   

Uso especial en expresiones de asignación

El operador condicional puede producir un valor L en C/C++ al que se le puede asignar otro valor, pero la gran mayoría de los programadores considera que este es un estilo extremadamente pobre, aunque sólo sea por la oscuridad de la técnica. [6]

C/C++

(( foo ) ? bar : baz ) = frink ;      //equivalente a: si ( foo ) bar = frink ; de lo contrario baz = frink ;       

Véase también

Referencias

  1. ^ "Operadores de igualdad, relacionales y condicionales (Tutoriales de Java™ > Aprendizaje del lenguaje Java > Conceptos básicos del lenguaje)". docs.oracle.com . Consultado el 29 de abril de 2019 .
  2. ^ abc BillWagner. "?: Operador - Referencia de C#". docs.microsoft.com . Consultado el 29 de abril de 2019 .
  3. ^ "El operador ?: en Java". www.cafeaulait.org . Consultado el 29 de abril de 2019 .
  4. ^ de mikeblome. "Operador condicional: ? :". docs.microsoft.com . Consultado el 29 de abril de 2019 .
  5. ^ "Operador condicional (ternario) - JavaScript". developer.mozilla.org . Consultado el 29 de abril de 2019 .
  6. ^ "Operador condicional". wiki.c2.com . Consultado el 29 de abril de 2019 .