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
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)
Convertissez donc dans le switch les char en int (-> (int) charactere_a_convertir)
[...]
switch (modePaiement){
case (int)DEBIT :
[...]
Ça ne marche toujours pas :(
Dans mon 2eme cas de figure il n'y a pratiquement rien et mon Clavier.lireString(); est quand même ignorer :\.
Merci