2013-10-10 5 views
1

Désolé si c'est un sujet primitif, j'ai un professeur qui ne parle pas anglais et je suis plutôt perdu.Déclarer une méthode booléenne en java

J'essaie de déclarer une méthode qui vérifie si un triangle est équilatéral. Il ne cesse de me dire que je compare un booléen à un int dans ma déclaration if. side1, side2 et side3 sont tous des types int.

public boolean is_equilateral(){ 
    if (side1 == side2 == side3){ 
     return true; 
    } 
    return false; 
} 

Merci pour l'aide à l'avance!

+4

'" Désolé si c'est un sujet primitif, ... "' - C'est seulement un sujet primitif parce que votre méthode retourne 'boolean' et non' Boolean'. –

+2

Le résultat d'une comparaison '==' est un booléen. –

+2

Le fait que votre professeur ne parle pas anglais ressemble vraiment à quelque chose dont vous devriez parler à votre université. –

Répondre

3

Utilisez

side1 == side2 && side1 == side3 

à la place.

+0

C'était juste! Cela a du sens maintenant aussi. Il lisait "side1 == side2" "comme un booléen en lui-même et en le comparant à side3 .. Merci! – Taylor

+0

@TaylorDavison Ce n'est pas" reading "' side1 == side2' comme 'boolean'. 'side2' via l'opérateur' == ', qui est un' boolean', puis il compare un 'boolean' avec' side3' avec l'opérateur '==' et retourne ce 'boolean' pour évaluer l'instruction' if'. – nhgrif

6

Dans votre comparaison if (side1 == side2 == side3) il va d'abord comparer side1 == side2, ce qui entraîne un booléen. Par la suite, il comparera le premier résultat (boolean) avec le dernier élément (int), ce qui donne une erreur. Vous ne pouvez pas comparer un boolean à un int.

4

L'expression side1 == side2 évalue à booléen, ainsi vous ne pouvez pas le comparer à un autre int. Mais vous pouvez faire:

if((side1 == side2) && (side2 == side3)) { 
... 
} 
1

Utilisez

if ((side1 == side2) & & (side2 == Side3))

au lieu de

si (side1 == side2 == side3)

Questions connexes