« Je voudrais te parler peu de la comparaison de variables en Java. »

« Tu connais déjà les opérateurs de comparaison les plus simples : inférieur à (<) et supérieur à (>). »

« Absolument. »

« Il y a aussi des opérateurs comme égal à (==) et non égal à (!=). Mais aussi inférieur ou égal à (<=) et supérieur ou égal à (>=). »

« Ça commence à devenir intéressant. »

« Note bien qu'il n'y a pas d'opérateurs =< ou => en Java ! »

« Le signe = est utilisé pour les opérations d'affectation. C'est pourquoi nous utilisons deux signes égal (==) pour tester l'égalité. Pour vérifier si des variables ne sont pas égales, tu utilises l'opérateur !=. »

« Je vois. »

« Quand tu compares deux variables en Java en utilisant l'opérateur ==, tu compares le contenu des variables. »

« Ainsi, pour des variables primitives, leurs valeurs sont comparées. »

« Mais pour les variables de référence, ce sont les références qui sont comparées. Supposons que nous avons des objets identiques mais distincts. Comme leurs références sont différentes, une comparaison montrera qu'ils ne sont pas égaux, c'est-à-dire que le résultat de la comparaison sera false. Une comparaison de références ne renverra true que si les deux références désignent le même objet. »

« Pour comparer le contenu interne d'objets, nous utilisons la méthode spéciale equals. Cette méthode (tout comme toutes les méthodes de la classe Object) est ajoutée à ta classe par le compilateur, même si tu ne la déclares pas. Je vais te montrer quelques exemples : »

Code Explication
1
int a = 5;
int b = 5;
System.out.println(a == b);
Compare des types primitifs.
true s'affichera à l'écran.
2
Cat cat1 = new Cat("Oscar");
Cat cat2 = cat1;
System.out.println(cat1 == cat2);
Compare des références.
true s'affichera à l'écran.
Les deux variables stockent des références au même objet.
3
String s = new String("Mom");
String s2 = s;
System.out.println(s == s2);
Compare des références.
true s'affichera à l'écran.
Les deux variables stockent des références au même objet.
4
Cat cat1 = new Cat("Oscar");
Cat cat2 = new Cat("Oscar");
System.out.println(cat1 == cat2);
Compare des références.
false s'affichera à l'écran.
Les deux variables font référence à des objets Chat identiques, mais pas le même.
5
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s == s2);
Compare des références.
false s'affichera à l'écran.
Les deux variables font référence à des objets String identiques, mais pas le même.
6
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s.equals(s2));
Compare des objets.
true s'affichera à l'écran.
Les deux variables font référence à des objets String distincts, mais identiques.

« Oh, j'avais presque oublié ! Voici quelques exercices pour toi. »

4
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
Le plus petit de deux nombres
Tous les algorithmes de recherche et de tri reposent sur des comparaisons. Tu pourras les manipuler très bientôt, si tel est ton souhait. En attendant, nous te conseillons de commencer par quelque chose de plus petit : écris un programme pour trouver le plus petit de deux nombres. Détermine-le, puis affiche-le. Et si les nombres sont identiques, affiche un des deux.
4
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
Le plus grand de quatre nombres
Trouver le maximum est une opération n-aire (une opération sur n nombres) qui retourne le plus grand de plusieurs nombres. Oublie ça. Nous n'avons pas besoin de ces définitions au centre secret CodeGym. Nous sommes là pour apprendre à écrire du code. Pour cette mission, tu dois utiliser le clavier pour saisir quatre nombres. Ensuite, détermine le plus grand d'entre eux et affiche-le à l'écran.
8
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
Tri de trois nombres
La planète Chaos Linéaire est peuplée d'isomorphes. On pense que ce sont eux qui ont inventé les algorithmes de tri. Tout est extrêmement bien organisé dans leurs têtes. Ils ne délivrent des visas planétaires qu'aux personnes qui connaissent au moins 7 algorithmes de tri. Faisons notre premier pas vers Chaos Linéaire : Lis trois nombres au clavier, mets-les dans l'ordre décroissant, puis affiche-les à l'écran.
4
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
Jen ou Jen ?
Jen, l'administratrice de la Société X, a appris à piloter un vaisseau spatial et a mis les voiles en direction d'une autre planète. Les gens de la Société X sont bons et sincères. C'est juste qu'ils sont un peu tête-en-l'air et ont tendance à mélanger les noms. Alors ils ont décidé que leur nouvelle administratrice devrait aussi s'appeler Jen. Aidons la Société X à trouver sa Jen : écrivons un programme qui vérifie l'identité de deux noms saisis.
2
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
18+
As-tu déjà vu un enfant fermer un site Web après avoir été informé qu'il n'était pas destiné aux mineurs ? Malgré sa remarquable inefficacité, ce processus de « vérification » d'âge est encore utilisé à notre époque. Écrivons un programme qui affiche l'âge de l'utilisateur. Si la réponse est <18, le programme affiche « Grandis encore un peu ».
2
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
Politique du videur
La boîte de nuit Chasteté a engagé la Société X pour concevoir un videur automatisé. Un jeune développeur (toi) a reçu l'ordre d'écrire une méthode d'identification des visiteurs qui comprend un contrôle de l'âge. Les fêtards potentiels doivent utiliser le clavier pour saisir leur nom et leur âge. S'ils ont 20 ans ou plus, le videur automatisé doit assurer au client que tout va bien : 18 ans, c'est déjà assez vieux.
4
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
Trois nombres
Saisie au clavier, comparaisons numériques et sortie écran : les élèves du 4e niveau de CodeGym peaufinent ces compétences jusqu'à ce qu'elles deviennent un automatisme. Écrivons un programme où l'utilisateur saisit trois nombres au clavier. Ensuite, nous effectuerons une comparaison. Si nous trouvons un nombre qui diffère des deux autres, nous afficherons son nombre ordinal.
2
Mission
Syntaxe Java,  niveau 4leçon 6
Bloqué
Cible verrouillée !
Un robot militaire a été équipé d'un viseur qui l'aide à abattre des boîtes de conserve ennemies. Un informateur passe au robot les coordonnées de surface de l'ennemi (latitude et longitude). Écrivons un programme qui aide le robot à calculer le quadrant où la boîte de conserve se trouve.