Bonjour à tous !
Je suis confronté à un problème plutôt gênant avec Java… Tout d’abord , je développe avec Eclipse (helios) une application de gestion de compte bancaire. Dans mon code j’ai ma classe teste comme ceci :
package Cpte;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
public class testType {
public static void main(String[] args) throws ParseException {
Banque b = new Banque(); //création d'une banque
b.NouveauType("ch", 0); //création des types de mouvement, ici cheque
b.NouveauType("pre", 0); //prélevement
b.NouveauType("rdi", -1); //retrait distributeur
b.NouveauType("ret", -1); //retrait en guichet
b.NouveauType("vir", 0); //virement
b.NouveauType("dch", 4); //depot de cheque
b.NouveauType("des", 0); //dépôt d'éspece
Date d = new SimpleDateFormat("dd/MM/yyyy").parse("12/01/2012"); //force la date choisie à êtresous la forme Date de java
b.NouveauCompte(12345, "Pipo","Jean", 0, -5000, d); //création d'un nouveau compte
Scanner saisieUtilisateur = new Scanner(System.in); //effectuer un mouvement pour le comtpe voulu
System.out.println("Veuillez saisir un numéro de compte: ");
int ent = 1245;
while(b.RendCompte(ent) == null)
{
System.out.println("Ce compte n'existe pas");
System.out.println("Veuillez saisir un numéro de compte: ");
ent = 1245;
}
System.out.println("Montant du mouvement? ");
double rep = 100;
while ((b.RendCompte(ent).getSolde()+rep) < b.RendCompte(ent).getDecouvert())
{
System.out.println("Erreur le solde est insuffisant par rapport au découvert autorisé");
System.out.println("Pour rappel votre Solde est de: " + b.RendCompte(ent).getSolde() + " Découvert Autorisé : " + b.RendCompte(ent).getDecouvert() + " Somme possible à débiter : " + (-(b.RendCompte(ent).getDecouvert()) + (b.RendCompte(ent).getSolde())));
System.out.println("Montant du mouvement? ");
rep = saisieUtilisateur.nextDouble();
}
System.out.println("Type de mouvement?");
String rep2 = saisieUtilisateur.next();
System.out.println(b.getTypeLib(rep2));
}
}
Mon problème est au niveau de la fin avec ma variable « rep2 ». Je rentre mon type de mouvement par exemple « ch » et quand il rentre dans la fonction getTypeLib le System.out.println me renvoi un « null » alors que si je mets le type de mouvement en dur comme ci-dessous cela fonctionne…
System.out.println("Type de mouvement?");
// String rep2 = saisieUtilisateur.next();
System.out.println(b.getTypeLib("ch"));
Donc je ne comprends pas pourquoi en dur ça marche alors que ma variable contient la même chose… Voici la fonction getTypeLib:
package Cpte;
import java.text.ParseException;
import java.util.Vector;
import java.util.Date;
public class Banque {
private Vector <Compte> MesComptes;
private Vector <Type> MesTypes;
public Banque()
{
MesComptes = new Vector <Compte>();
MesTypes = new Vector <Type>();
}
public Type getTypeLib(String UnLibelle)
{
for (int i = 0; i < MesTypes.size(); i++)
{
if (getTypeInd(i).getCode() == UnLibelle)
{
return (getTypeInd(i));
}
}
return (null);
}
public Type getTypeInd(int UnIndice)
{
return ((Type)MesTypes.elementAt(UnIndice));
}
Un type ne contient qu’un code au format String (par exemple: « ch ») et un nombre de jour en int. Merci d’avance pour votre aide !
Edité le 17/04/2012 à 22:42