Problème avec Clavier.lireChar();
moutona2pis
-
neogenesis Messages postés 5303 Statut Contributeur -
neogenesis Messages postés 5303 Statut Contributeur -
Bonjour,
J'ai un problème avec un choix multiple, je fais ceci :
public class testeuh {
public static void main (String[] params) {
String numCarte;
char modePaiement;
System.out.println(" Entrez le mode de paiement, C : Comptant, D : Carte Débit,");
System.out.println("V : Carte Visa ou M : Carte Master Card : ");
modePaiement = Clavier.lireChar();
final char DEBIT = 'D';
final char VISA = 'V';
final char MASTER ='M';
switch (modePaiement){
case DEBIT :
System.out.println ("Entrer le numéro de la carte");
numCarte = Clavier.lireString();
break;
case VISA :
System.out.println("Entrer le numéro de la carte");
numCarte = Clavier.lireString();
break;
case MASTER :
System.out.println("Entrer le numéro de la carte:");
numCarte= Clavier.lireString();
break;
}
} // main
} // testeuh
Mais voilà, dès que j'utilise Clavier.lireChar(); ça compile mais lors de l'exécution, il ne prend pas en compte les lignes "numCarte= Clavier.lireString();". Si je le fais avec un Int (int modePaiement; et 1,2,3 à la place de D,V,M) ça marche nickel, mais bon dans mon énoncé ça doit être des caractères.
En fait dès que j'utilise Clavier.lireChar(); plus aucun Clavier.lireString(); qui suit dans mon programme n'Est pris en compte lors de l'éxécution (comme si ils n'étaient pas là).
Ça me fait la même chose avec :
public class testeeeeeuh {
// Autres méthodes s'il y a lieu
public static void main (String[] params) {
String numCarte;
char modePaiement;
System.out.println("Entrer ...");
modePaiement = Clavier.lireChar();
System.out.println("Entrer le numéro de la carte:");
numCarte = Clavier.lireString();
} // main
} // testeeeeeuh
Si quelqu'un pouvait m'expliquer pourquoi Clavier.lireChar(); "rend invisible" toutes tentative de Clavier.lireString(); qui suit.
Merci
J'ai un problème avec un choix multiple, je fais ceci :
public class testeuh {
public static void main (String[] params) {
String numCarte;
char modePaiement;
System.out.println(" Entrez le mode de paiement, C : Comptant, D : Carte Débit,");
System.out.println("V : Carte Visa ou M : Carte Master Card : ");
modePaiement = Clavier.lireChar();
final char DEBIT = 'D';
final char VISA = 'V';
final char MASTER ='M';
switch (modePaiement){
case DEBIT :
System.out.println ("Entrer le numéro de la carte");
numCarte = Clavier.lireString();
break;
case VISA :
System.out.println("Entrer le numéro de la carte");
numCarte = Clavier.lireString();
break;
case MASTER :
System.out.println("Entrer le numéro de la carte:");
numCarte= Clavier.lireString();
break;
}
} // main
} // testeuh
Mais voilà, dès que j'utilise Clavier.lireChar(); ça compile mais lors de l'exécution, il ne prend pas en compte les lignes "numCarte= Clavier.lireString();". Si je le fais avec un Int (int modePaiement; et 1,2,3 à la place de D,V,M) ça marche nickel, mais bon dans mon énoncé ça doit être des caractères.
En fait dès que j'utilise Clavier.lireChar(); plus aucun Clavier.lireString(); qui suit dans mon programme n'Est pris en compte lors de l'éxécution (comme si ils n'étaient pas là).
Ça me fait la même chose avec :
public class testeeeeeuh {
// Autres méthodes s'il y a lieu
public static void main (String[] params) {
String numCarte;
char modePaiement;
System.out.println("Entrer ...");
modePaiement = Clavier.lireChar();
System.out.println("Entrer le numéro de la carte:");
numCarte = Clavier.lireString();
} // main
} // testeeeeeuh
Si quelqu'un pouvait m'expliquer pourquoi Clavier.lireChar(); "rend invisible" toutes tentative de Clavier.lireString(); qui suit.
Merci
Configuration: Windows XP Firefox 3.0.3
3 réponses
-
L'erreur provient du Switch. La valeur testée devrait être un entier, et dans votre cas il s'agit d'un char
Convertissez donc dans le switch les char en int (-> (int) charactere_a_convertir) -
JE pense que le problème vient de LireChar alors, pouvez-vous donner cette méthode ?
J'ai déjà eu un problème similaire et pour capter un Char depuis un scanner je devais faire
char test = scanner.next().charAt(0);
Je pense que le problème se situe ici. -
Est-ce que le problème peut venir d'une corruption de l'installation de mon programme BlueJ ou de la JDK ?
J'irai demain tester sur un ordinateur de la fac'. Mais sans grand espoir.