Menu

If/else dans un code simple [Résolu]

Edgar Moerman - 7 sept. 2017 à 17:46 - Dernière réponse :  Edgar Moerman
- 7 sept. 2017 à 18:36
Bonjour, je suis en train d'apprendre le code java et j'ai écrit un code sur eclipse, il ne me signal aucun bug, mais la condition if n'est jamais utilisé, seul la condition else ressort.

Voici le code en question:

import java.util.Scanner;

public class test4 {
 public static void main(String[] arg) {
  Scanner sc = new Scanner(System.in);
  System.out.println("Mot de passe:");
  String y = sc.nextLine();
  
  if (y == "abc")
  System.out.println("Mot de passe valide...");
 
  else
  System.out.println("Mot de passe non valide.");  
  
  
 }
}

Merci de votre aide, pour que je comprenne mon erreur :)
Afficher la suite 

Votre réponse

2 réponses

KX 15446 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 25 mai 2018 Dernière intervention - 7 sept. 2017 à 18:14
0
Merci
Bonjour,

L'opérateur
==
compare les références de deux objets, mais pas leurs valeurs.
y
est un objet issu de la lecture clavier,
"abc"
est un objet issu du code.
Ils ont la même valeur mais ce sont deux objets différents, avec chacun leurs références.
Donc utiliser
==
est faux pour faire une comparaison de valeur, tu devrais plutôt utiliser la méthode
equals()
qui fera ce que tu veux.

if (y.equals("abc"))
Commenter la réponse de KX
Edgar Moerman - 7 sept. 2017 à 18:36
0
Merci
A oui ça marche mieux, merci, je vais essayer de comprendre ce que vous venez de m'expliquer :)
Commenter la réponse de Edgar Moerman