-1
votes

Syntaxe booléenne. S'il vous plaît, expliquez

Quelqu'un peut-il s'il vous plaît expliquer cette syntaxe java pour moi. public boolean isDead() { return numFightersAlive() == 0 ? true : false; } Je suis nouveau sur java et je me demandais de quel genre de syntaxe il s'agissait. Normalement, je créerais une variable et retournerais la variable booléenne, mais c'est la première fois que je vois un point d'interrogation dans un code.


2 commentaires

C'est ce qu'on appelle un opérateur ternaire.


Notez que ceci est un exemple d'une très mauvaise utilisation du ternaire, puisque vous pouvez tout aussi facilement dire return numFightersAlive() == 0 .


3 Réponses :


2
votes

Après le point d'interrogation se trouve la partie "alors", après les deux points se trouve la partie "autre".

C'est donc une syntaxe abrégée pour

return numFightersAlive() == 0

Il peut en fait être simplifié pour être juste

if (numFightersAlive() == 0) {
  return true;
} else {
  return false;
}

Cela donnerait un résultat équivalent


1 commentaires

Pour ajouter, il y a quelque temps, j'ai demandé quelque chose de très similaire et OP voudra peut-être jeter un coup d'œil: stackoverflow.com/questions/64096020/...



-1
votes

Tout ce que tu as à faire c'est

public boolean dead(){
return numFightersAlive ==0;
}

Cela renvoie le booléen si c'est 0 ou non, vous n'avez pas besoin de comparaison ternaire


1 commentaires

oui, mais cela n'explique pas l'opérateur ternaire, et c'est de cela qu'il s'agit.



0
votes

C'est ce qu'on appelle ternaire. C'est une version abrégée d'un if, mais ce n'est pas meilleur qu'un si tout le temps.

La syntaxe d'un ternaire est la suivante:

public boolean isDead() { return numFightersAlive() == 0 ? true : false; }

Dans ce cas: Le retour demande une condition. La condition est-elle égale à zéro?

S'il est vrai, return aura une valeur vraie, s'il est faux, return aura une valeur fausse.

(condition) ? result in case of being true: result in case of being false


0 commentaires