Sintaxe booleana. Explique [duplicado]

Nov 16 2020

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

Valhalla Nov 16 2020 at 06:57

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

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