Besoin d'un coup de main pour faire fonctionner mon programme

Fermé
medhidu02 Messages postés 16 Date d'inscription samedi 14 septembre 2013 Statut Membre Dernière intervention 17 janvier 2015 - 21 sept. 2013 à 19:35
medhidu02 Messages postés 16 Date d'inscription samedi 14 septembre 2013 Statut Membre Dernière intervention 17 janvier 2015 - 21 sept. 2013 à 22:26
Bonjour,
je n'arrive pas à bien faire fonctionner ce petit programme, tout fonctionne mais à chaque fois il me renvoi : nom invalide !
Pourriez vous me donner un coup de main s'il vous plait?

Voici le programme:
class Valentine extends Program {

void algorithm() {
String nom;

println("Entre ton prenom stp :)");
nom = readString();
if(nom == "valentine") {
println("coucou soeurette :)");
} else {
println("nom invalide !");
}
}
}


A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
21 sept. 2013 à 19:43
L'opérateur == ne compare pas la valeur de deux objets, mais l'instance de ces objets or ici l'instance sera toujours différente, donc ça te renvoie faux.
Il faudrait qut u compares la valeur des objets, avec la méthode equals pour que cela puisse fonctionner :

if (nom.equals("valentine"))
0
medhidu02 Messages postés 16 Date d'inscription samedi 14 septembre 2013 Statut Membre Dernière intervention 17 janvier 2015
21 sept. 2013 à 20:58
Merci beaucoup :)
0
medhidu02 Messages postés 16 Date d'inscription samedi 14 septembre 2013 Statut Membre Dernière intervention 17 janvier 2015
21 sept. 2013 à 22:04
Encore une petite chose, j'ai rajouter la ligne suivante : While (!equals(nom,"valentine")) { entre la ligne nom = ... et if(... .Mais il m'indique un erreur que je n'arrive pas a corriger.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
21 sept. 2013 à 22:23
Il faut respecter les règles du Java, tu ne peux pas te permettre de faire du code approximatif.

J'ai écrit
nom.equals("valentine")
c'est à dire
objet.methode(argument)
c'est la base de la programmation objet. Si tu fais
equals(nom,"valentine")
ça ne veut plus rien dire.

Donc apprends le Java, tu as pléthore de cours et tutoriels sur internet, mais il te faut au moins les bases avant de commencer à coder...

Remarque :
while
et tous les mots clés Java s'écrivent en minuscule, "While" n'existe pas.
0
medhidu02 Messages postés 16 Date d'inscription samedi 14 septembre 2013 Statut Membre Dernière intervention 17 janvier 2015
21 sept. 2013 à 22:26
D'accord je vais m'y mettre alors, merci.
0