Sintaxe booleana. Explique [duplicado]
Alguém pode explicar essa sintaxe java para mim. public boolean isDead() { return numFightersAlive() == 0 ? true : false; }Eu sou novo em java e queria saber que tipo de sintaxe é isso. Normalmente, eu criaria uma variável e retornaria a variável booleana, mas é a primeira vez que vejo um ponto de interrogação em um código.
Respostas
Isso é chamado de ternário. É uma versão abreviada de um se, mas não é melhor do que um se o tempo todo.
A sintaxe de um ternário é a seguinte:
(condition) ? result in case of being true: result in case of being false
Neste caso: O retorno está pedindo uma condição. A condição é igual a zero?
Se for verdadeiro, o retorno terá um valor verdadeiro; se for falso, o retorno terá um valor falso.
public boolean isDead() { return numFightersAlive() == 0 ? true : false; }
Depois do ponto de interrogação está a parte "then", depois dos dois pontos está a parte "else".
Portanto, esta é uma sintaxe abreviada para
if (numFightersAlive() == 0) {
return true;
} else {
return false;
}
Na verdade, pode ser simplificado para ser apenas
return numFightersAlive() == 0
Isso daria um resultado equivalente