variable the operator java operators ternary-operator conditional-operator

java - the - ¿Qué es un signo de interrogación "?" Y "Colon": "¿Se usa el operador?



ternary operator python (7)

Eso es una declaración if / else igual a

if(row % 2 == 1){ System.out.print("<"); }else{ System.out.print("/r>"); }

Esta pregunta ya tiene una respuesta aquí:

Dos preguntas sobre el uso de un signo de interrogación "?" y colon ":" operador dentro del paréntesis de una función de impresión: ¿Qué hacen? Además, ¿alguien sabe el término estándar para ellos o dónde puedo encontrar más información sobre su uso? He leído que son similares a una declaración ''if'' ''else''.

int row = 10; int column; while (row >= 1) { column = 1; while(column <= 10) { System.out.print(row % 2 == 1 ? "<" : "/r>"); ++column; } --row; System.out.println(); }


Este es el operador condicional ternario , que se puede usar en cualquier lugar, no solo la instrucción de impresión. A veces se llama simplemente "el operador ternario", pero no es el único operador ternario , solo el más común.

Aquí hay un buen ejemplo de Wikipedia que demuestra cómo funciona:

Se escribe una construcción if-else tradicional en C, Java y JavaScript:

if (a > b) { result = x; } else { result = y; }

Esto se puede reescribir como la siguiente declaración:

result = a > b ? x : y;

Básicamente toma la forma:

boolean statement ? true result : false result;

Entonces, si la declaración booleana es verdadera, obtienes la primera parte, y si es falsa obtienes la segunda.

Pruebe esto si eso todavía no tiene sentido:

System.out.println(true ? "true!" : "false."); System.out.println(false ? "true!" : "false.");


Quizás puede ser el ejemplo perfecto para Android, por ejemplo:

void setWaitScreen(boolean set) { findViewById(R.id.screen_main).setVisibility( set ? View.GONE : View.VISIBLE); findViewById(R.id.screen_wait).setVisibility( set ? View.VISIBLE : View.GONE); }


Se les llama el operador ternario ya que son los únicos en Java.

La diferencia con el constructo if ... else es que devuelven algo y este algo puede ser cualquier cosa:

int k = a > b ? 7 : 8; String s = (foobar.isEmpty ()) ? "empty" : foobar.toString ();


También aunque publicaría la respuesta a otra pregunta relacionada que tenía,

a = x ? : y;

Es equivalente a:

a = x ? x : y;

Si x es falso o nulo, entonces se toma el valor de y.


es un operador ternario y en inglés simple dice "if row%2 is equal to 1 then return < else return /r"


a=1; b=2; x=3; y=4; answer = a > b ? x : y;

answer=4 ya que la condición es falsa, toma el valor y.

Un signo de interrogación (?)
. El valor a usar si la condición es verdadera

A dos puntos (:)
. El valor a usar si la condición es falsa