A voir également:
- Petite énigme Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
8 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
12 déc. 2008 à 14:58
12 déc. 2008 à 14:58
c'est parce qu'on ne compare pas des String avec == ça ça va comparer les reference seulement
il faudrait que tu code la methode equals pour comparer les String
il faudrait que tu code la methode equals pour comparer les String
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
11 déc. 2008 à 15:26
11 déc. 2008 à 15:26
en effet ton getCodeSecret ne doit prendre aucun parametre il doit juste retourner le code_secret
public String getCodeSecret (){ return this.code_secret; }
Oups j'avais ajouté un attribut pour tester la méthode et j'ai oublier de le supprimer ^^
Sinon pour le getCode_secret j'avais déjà essayer et toujours le même résultat la méthode renvoie toujours 'null' dans mon programme principal
Sinon pour le getCode_secret j'avais déjà essayer et toujours le même résultat la méthode renvoie toujours 'null' dans mon programme principal
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Phortitou
Messages postés
221
Date d'inscription
jeudi 6 novembre 2008
Statut
Membre
Dernière intervention
4 décembre 2011
27
12 déc. 2008 à 09:15
12 déc. 2008 à 09:15
return setCodeSecret(code2); d'ou il sort ton code2? Tu crées un code juste avant, mais tu passe en paramètre un truc qui n'existe pas... Peut etre que c'est là que ton code secret devient null
return this.code_secret=code_secret; <- ça c'est faux!
On peut avoir le main aussi?
for (int i = 0; i < NB_NUM; i++ )
code_num=(Hasard.entier(10));
code_secret=" "+code_num;
Tu devrais pas mettre des crochets pour ta boucle?
return this.code_secret=code_secret; <- ça c'est faux!
On peut avoir le main aussi?
for (int i = 0; i < NB_NUM; i++ )
code_num=(Hasard.entier(10));
code_secret=" "+code_num;
Tu devrais pas mettre des crochets pour ta boucle?
Alors merci pour vos petis conseils j'ai réussi à corriger 2-3 erreus , j'arrive à avoir le code désormais mais cette fois si le problème viens de mon main, Lorsque je rentre le code fourni le programme ne rentre pas dans la condition et me dis "Au revoir". -_-
Voici mon main:
//VARIABLES
public static int compteur;
public static String code_secret;
public static void main (String[]args){
//INSTANCIATION
Purse Portm = new Purse();
System.out.println(Portm.reveler_code());
//TRANSACTION
while ( Portm.isTransactionEnCours()==true )
System.out.println ("Une autre transaction est déjà en cours avec votre carte veuillez patientez");
String codeFourni = Lire.jString("Veuillez entrer les 4 chiffres de votre code confidentiel (Q pour annuler): ");
System.out.println(Portm.getCodeSecret());
if(Portm.verifierCode(codeFourni)==true){
compteur=0;
Portm.setTransactionEnCours(true);
int demande = Lire.jint ("Tapez 1 pour créditer votre compte ou 2 pour le débiter");
if (demande==1) {
float credit= Lire.jfloat("Saisissez le montant que vous voulez créditer");
Portm.crediter(credit);
}
else if (demande==2){
float debit= Lire.jfloat("Saisissez le montant que vous voulez débiter");
if ( debit > Portm.getSomme() )
System.out.println ("Vous ne pouvez pas dépasser votre montant actuel de '" +Portm.getSomme()+ "'");
Portm.debiter(debit);
}
else
compteur=0;
while (Portm.verifierCode(codeFourni)==false){
if ( compteur > Portm.getNB_ESSAIS())
System.out.println("Nombre d'essai dépassé ! Votre carte va être avalée...");
else if (codeFourni=="Q")
System.out.println("Transaction annulée, votre carte devrait vous être restituée...");
else
System.out.println("Code éronné");
compteur=compteur+1;
}
}
Portm.setTransactionEnCours(false);
System.out.println ("Au revoir...");
}
}
Et ma class Purse corrigé:
public class Purse {
//ATTRIBUTS
private int NB_NUM = 3;
private int NB_TRANS = 100;
private int NB_ESSAIS = 3;
private int revele = 2;
private String code_secret ="";
private boolean transaction_en_cours = false;
private float somme = 50;
//CONSTRUCTEUR
public Purse (){
setTransactionEnCours(false);
donne_code();
getCodeSecret ();
}
//ACCESSEURS
public String getCodeSecret (){
return this.code_secret;
}
private String setCodeSecret (String code){
return code_secret = code;
}
public boolean isTransactionEnCours ( ){
return this.transaction_en_cours;
}
public boolean setTransactionEnCours ( boolean valeur ){
return this.transaction_en_cours = valeur;
}
private float setSomme( float s ){
return somme = s;
}
public float getSomme ( ){
while (somme <= 100);
return this.somme;
}
public int getNB_ESSAIS (){
return this.NB_ESSAIS;
}
//METHODES DE LA CLASSE
public String donne_code(){
for (int i = 0; i <= NB_NUM; i++ )
code_secret=code_secret+(Hasard.entier(10));
return setCodeSecret(code_secret);
}
public float debiter ( float debit ){
NB_TRANS = NB_TRANS-1;
if(NB_TRANS> 0 && 0<somme && somme<100)
return somme = somme - debit ;
else
return somme;
}
public float crediter ( float credit ){
NB_TRANS = NB_TRANS-1;
if(NB_TRANS> 0 && somme<100 )
return somme = somme + credit ;
else
return somme;
}
public boolean verifierCode (String codeFourni){
if (codeFourni==getCodeSecret())
return true;
else
return false;
}
public String reveler_code (){
if (revele>=0){
revele=-1;
return "Votre code confidentiel est le suivant : "+getCodeSecret()+" ";
}
else
return "XXXX";
}
}
Voici mon main:
//VARIABLES
public static int compteur;
public static String code_secret;
public static void main (String[]args){
//INSTANCIATION
Purse Portm = new Purse();
System.out.println(Portm.reveler_code());
//TRANSACTION
while ( Portm.isTransactionEnCours()==true )
System.out.println ("Une autre transaction est déjà en cours avec votre carte veuillez patientez");
String codeFourni = Lire.jString("Veuillez entrer les 4 chiffres de votre code confidentiel (Q pour annuler): ");
System.out.println(Portm.getCodeSecret());
if(Portm.verifierCode(codeFourni)==true){
compteur=0;
Portm.setTransactionEnCours(true);
int demande = Lire.jint ("Tapez 1 pour créditer votre compte ou 2 pour le débiter");
if (demande==1) {
float credit= Lire.jfloat("Saisissez le montant que vous voulez créditer");
Portm.crediter(credit);
}
else if (demande==2){
float debit= Lire.jfloat("Saisissez le montant que vous voulez débiter");
if ( debit > Portm.getSomme() )
System.out.println ("Vous ne pouvez pas dépasser votre montant actuel de '" +Portm.getSomme()+ "'");
Portm.debiter(debit);
}
else
compteur=0;
while (Portm.verifierCode(codeFourni)==false){
if ( compteur > Portm.getNB_ESSAIS())
System.out.println("Nombre d'essai dépassé ! Votre carte va être avalée...");
else if (codeFourni=="Q")
System.out.println("Transaction annulée, votre carte devrait vous être restituée...");
else
System.out.println("Code éronné");
compteur=compteur+1;
}
}
Portm.setTransactionEnCours(false);
System.out.println ("Au revoir...");
}
}
Et ma class Purse corrigé:
public class Purse {
//ATTRIBUTS
private int NB_NUM = 3;
private int NB_TRANS = 100;
private int NB_ESSAIS = 3;
private int revele = 2;
private String code_secret ="";
private boolean transaction_en_cours = false;
private float somme = 50;
//CONSTRUCTEUR
public Purse (){
setTransactionEnCours(false);
donne_code();
getCodeSecret ();
}
//ACCESSEURS
public String getCodeSecret (){
return this.code_secret;
}
private String setCodeSecret (String code){
return code_secret = code;
}
public boolean isTransactionEnCours ( ){
return this.transaction_en_cours;
}
public boolean setTransactionEnCours ( boolean valeur ){
return this.transaction_en_cours = valeur;
}
private float setSomme( float s ){
return somme = s;
}
public float getSomme ( ){
while (somme <= 100);
return this.somme;
}
public int getNB_ESSAIS (){
return this.NB_ESSAIS;
}
//METHODES DE LA CLASSE
public String donne_code(){
for (int i = 0; i <= NB_NUM; i++ )
code_secret=code_secret+(Hasard.entier(10));
return setCodeSecret(code_secret);
}
public float debiter ( float debit ){
NB_TRANS = NB_TRANS-1;
if(NB_TRANS> 0 && 0<somme && somme<100)
return somme = somme - debit ;
else
return somme;
}
public float crediter ( float credit ){
NB_TRANS = NB_TRANS-1;
if(NB_TRANS> 0 && somme<100 )
return somme = somme + credit ;
else
return somme;
}
public boolean verifierCode (String codeFourni){
if (codeFourni==getCodeSecret())
return true;
else
return false;
}
public String reveler_code (){
if (revele>=0){
revele=-1;
return "Votre code confidentiel est le suivant : "+getCodeSecret()+" ";
}
else
return "XXXX";
}
}