Sintaxis booleana. Explique [duplicado]
¿Puede alguien explicarme esta sintaxis de Java? public boolean isDead() { return numFightersAlive() == 0 ? true : false; }Soy nuevo en Java y me preguntaba qué tipo de sintaxis es esa. Normalmente, crearía una variable y devolvería la variable booleana, pero es la primera vez que veo un signo de interrogación en un código.
Respuestas
A esto se le llama ternario. Es una versión abreviada de un si, pero no es mejor que un si todo el tiempo.
La sintaxis de un ternario es la siguiente:
(condition) ? result in case of being true: result in case of being false
En este caso: La devolución está pidiendo una condición. ¿La condición es igual a cero?
Si es verdadero, return tendrá un valor verdadero, si es falso, return tendrá un valor falso.
public boolean isDead() { return numFightersAlive() == 0 ? true : false; }
Después del signo de interrogación está la parte "entonces", después de los dos puntos está la parte "más".
Así que esta es una sintaxis abreviada para
if (numFightersAlive() == 0) {
return true;
} else {
return false;
}
En realidad, se puede simplificar para que sea solo
return numFightersAlive() == 0
Esto daría un resultado equivalente