Bonjour a tous la communaute ma quesiton est pourquoi quand je tape oui le programme ne se reexecute pas.
import java.util.Scanner;
public class sdz1
{
public static void main(String[] args)
{
//la variable qui contient le prenom
String prenom;
//La variable qui contient le oui
String reponse = "oui";
//Le scanner pour pouvoir ecrire et recuperer une saisie
Scanner sc = new Scanner(System.in);
//Tant que la donner est egal a oui
while(reponse == "oui")
{
//on demande le prenom
System.out.print("Quelle est le prenom ? ");
prenom = sc.nextLine();
//On affiche la phrase ave le prenom
System.out.println("Bonjours " +prenom+ " comment va tu ?");
//on demande si on veu reassayer
System.out.println("veu tu reassayer ? (oui/non)");
//on recupere la reponse
reponse = sc.nextLine();
}
}
}
C'est certainement le 3000e sujet pour la même erreur mais bon...
Réponse donnée ici entre autres (la flemme de mettre d'autres lien, y'a presque 1 sujet par jour pour ça...)
letalkram a écrit:
La raison est simple : on ne compare pas deux classes comme on compare deux types primitifs. Le == sur types primitifs (char, int...) fonctionne, mais pour des classes == signifie comparer les références, autrement dit : est-ce qu'il s'agit du même objet (stocké au même emplacement dans la mémoire RAM).
Pour comparer si deux classes sont identiques on utilise la méthode equals. Donc
if( str.equals(mdp) )
Equals compare le "contenu" de la classe.
Pour être encore plus précis ça devrait être STRING_CONSTANTE.equals(saisie) pour éviter un NullPointer par exemple. Donc
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Comme sur n'importe quel boolean.