Sintaxis booleana. Explique [duplicado]

Nov 16 2020

¿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

Valhalla Nov 16 2020 at 06:57

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; }
2 Maria Nov 16 2020 at 06:54

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