A propos des Conditions If()

cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 4 févr. 2011 à 13:16
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014 - 7 févr. 2011 à 13:26
Bonjour à Tous
Je voudrais bien comprendre une chose qui certainement m'échappe. Je ne voudrais pas etre long mais très explicite.
vente.addActionListener(new ActionListener(){
@SuppressWarnings("static-access")
public void actionPerformed(ActionEvent arg0){

String sAdr ="";
String strAdresse ="";

String sTel = "";
String strTel =	"";

String sNom = "";
String strNom ="";
String str    ="";
try{
while(str.isEmpty()){
str = JOptionPane.showInputDialog(null, "Saisissez le nom du client" ,getTitle(),JOptionPane.INFORMATION_MESSAGE);
}
strNom = getNomcli(str);
sNom = strNom.trim();


if(getNomcli(str)==null){
Vente vent = new Vente(str);
}else{

strTel = getTelephoneClient(str);
sTel = strTel.trim();
strAdresse = getAdresseClient(str);
sAdr = strAdresse.trim();
Vente vent = new Vente(sNom,sTel,sAdr);//,strTel,strAdresse);

}

}catch (NullPointerException tr){
System.out.println("VOUS AVEZ ANNULER");
}
 
}
});


Quand j'éxécute mon code la condition If ne s'exécute pas comme je le voudrais.
Dans mon entendement, cette partie de la condition IF (getNomcli(str)==null){ Vente vent = new Vente(str);}
devrait s'exécute quand la méthode getNomcli(str)renvoie un null. Mais à mon grand désarois rien ne se passe par contre la partie ELSE{....} s'exécute correctement.
Alors je voudrais comprendre où aurait-je pu faire une erreur. ou comment cela fonctionne correctement. Je rappelle que je suis entrain d’écrire un programme de gestion de stock de matériel informatiques qui en faite est mon projet de fin de cycle d'ingénieur.
Aussi je suis débutant en Java.
Merci de votre aide....

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 févr. 2011 à 14:33
Salut,

Il faudrait que tu nous montre le code de ta fonction getNomcli afin de voir dans quel cas elle te renvoie null.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014
4 févr. 2011 à 15:37
LA méthode getNomcli(String string), je l'ai écrite pour quelle me renvoie le nom du client de la Base de données Quand le paramètre entré est égal au nom existant dans la BD à l'aide de la requête SELECT dans la méthode. Par contre elle renvoie null quand le paramètre entré n'est pas égal à un nom de la base de données en fait quand la recherche est infructueuse.
/**
 * methode permettant de recuperer le nom du client de la base de Données
 * @param ncli
 * @return
 */
public String getNomcli(String ncli){

String nomclient = null;
requete "SELECT nomcli FROM client WHERE nomcli"+"'"+ncli+"'";
try{
Statement state = Maconnexion.getInstance().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet res = state.executeQuery(requete);
res.next();
nomclient = res.getString("nomcli");
res.next();

  	}catch (SQLException er){
//er.printStackTrace();
  		System.out.println("vous avez un resultat null");
  	}
  	System.out.println("Voici le resultat "+nomclient);
return nomclient;
}
0
Utilisateur anonyme
7 févr. 2011 à 11:04
Bonjour

Ce que tu dis est invraisemblable. Si getNomcli renvoie null, la partie juste après le if est exécutée. Je ne comprends pas pourquoi tu appelles 2 fois getNomcli et surtout pourquoi tu appelles 2 fois next() dans la méthode getNomcli.


















TUER : http://tuer.sourceforge.net/tuer.jnlp

yeah! vive java
0
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014
7 févr. 2011 à 12:47
Bonjour
Ok je reconnais que j'ai un peu forcer sur l'appel de la méthode getNomcli(), mais c’était pour m'assurer que j'ai la même chose dans ma variable . j'ai corriger cela.

En fait, je veux exécuter les deux partie de la condition si la méthode getNomcli() renvoie une valeur trouver il y a une action que je voudrais réalise avec le résultat.c'est à dire exécuter ça : Vente vent = new Vente(sNom,sTel,sAdr);

Mais également si c'est la valeur est null aussi ce que j'ai récupérer dans ma variable doit me permettre de faire un autre traitement.
c'est-à-dire exécuter ça: Vente vent = new Vente(str);


DAns la méthode getNomcli() je vais revoir l'appel de next
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_redbar Messages postés 112 Date d'inscription mardi 26 janvier 2010 Statut Membre Dernière intervention 26 mai 2014
7 févr. 2011 à 13:26
Bonjour
Après plusieurs recherche j'ai finalement trouver. Et ça marche bien.
En fait lorsque je lance l'exécution de la condition if(){ } Else{ }:
c'est une partie qui s'exécute


Mais après avoir décortiquer le code plus en profondeur. je me suis rendu compte que à cause du null que renvoie la méthode getNomcli(), il y a une exception qui est lévée. Dans la gestion de cette exception j'ai mis dans le bloc catch ( ){ } cette instruction Vente vent = new Vente(str).
et ça marche maintenant

Merci pour votre aide et a+
0
Rejoignez-nous