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.
3 Réponses :
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
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/...
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
oui, mais cela n'explique pas l'opérateur ternaire, et c'est de cela qu'il s'agit.
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
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.