Petite question "compareto"

Résolu/Fermé
alexp23 Messages postés 87 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 15 avril 2014 - 11 févr. 2014 à 18:46
alexp23 Messages postés 87 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 15 avril 2014 - 12 févr. 2014 à 11:05
Bonjour, j'ai une petite question, dans ma formation java on m'a appris que dans les comparaisons "compareto" il faut mettre exemple.compareTo(exemple2) == 0,
le == 0 signifie quoi ? Dans un devoir j'avais une erreur et après 2 heures, j'ai remplacé == 0 par == 1 (dans une boucle while je crois) et miracle, le programme fonctionne ... sauf que j'aimerais bien comprendre ;) Merci d'avance !

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
11 févr. 2014 à 19:38
compareTo permet de connaître l'ordre relatif entre deux objets.

Si a.compareTo(b) < 0 alors "a < b"
Si a.compareTo(b) = 0 alors "a = b"
Si a.compareTo(b) > 0 alors "a > b"

Attention : je parle d'ordre au sens mathématique, en Java ça n'a pas de sens de faire a < b sur autre chose que des nombres.

Exemple :

"abc".compareTo("xyz") < 0
"xyz".compareTo("abc") > 0
"abc".compareTo("abc") = 0

Attention : on ne peux pas (sauf regarder le code source) savoir quelle sera la valeur exacte renvoyée si ce n'est pas 0. Ton égalité ==1 serait fausse en générale, il faut la remplacer par >0 pour être correct.

Remarque : si a.compareTo(b) = 0, cela ne signifie pas pour autant que a.equals(b)
0
alexp23 Messages postés 87 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 15 avril 2014 4
12 févr. 2014 à 11:05
Merci beaucoup pour ces explications
0