Scanner de charAt
Fermé
hichiro
-
19 mars 2014 à 16:04
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 19 mars 2014 à 20:46
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 19 mars 2014 à 20:46
A voir également:
- Scanner de charAt
- Scanner qr code pc - Guide
- Installer scanner - Télécharger - Divers Utilitaires
- Tag scanner - Télécharger - Catalogage
- Comment scanner avec mon téléphone samsung - Guide
- Comment scanner un document avec une imprimante - Guide
3 réponses
Utilisateur anonyme
19 mars 2014 à 16:34
19 mars 2014 à 16:34
Bonjour
La condition de ton while est mauvaise.
En effet ton caractère est toujours différent de 'H' ou différent de 'F' : il ne peut pas âtre égal aux deux à la fois !
C'est un && qu'il aurait fallu mettre
La condition de ton while est mauvaise.
En effet ton caractère est toujours différent de 'H' ou différent de 'F' : il ne peut pas âtre égal aux deux à la fois !
C'est un && qu'il aurait fallu mettre
while(sexe != 'H' && sexe != 'F');
Utilisateur anonyme
19 mars 2014 à 18:02
19 mars 2014 à 18:02
En effet, ma remarque ne portait que sur la logique du programme.
Au passage, ce n'est pas le compilateur qui te donne cette erreur, c'est une erreur d'exécution.
Je ne connais pas Java et ses scanners, mais visiblement il te rend une ligne vide. Peux-tu tester la longueur rendue par sc.nextLine() et en refaire un autre si le premier n'a rien donné ? Au moins pour voir si le second te donne quelque chose, il restera à comprendre pourquoi après.
Au passage, ce n'est pas le compilateur qui te donne cette erreur, c'est une erreur d'exécution.
Je ne connais pas Java et ses scanners, mais visiblement il te rend une ligne vide. Peux-tu tester la longueur rendue par sc.nextLine() et en refaire un autre si le premier n'a rien donné ? Au moins pour voir si le second te donne quelque chose, il restera à comprendre pourquoi après.
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
19 mars 2014 à 18:13
19 mars 2014 à 18:13
Il faudrait voir ce qu'il y a avant. Mais si ton âge tu le récupère avec des nextInt par exemple, ceux ci ne vont pas capturer les sauts de lignes, ils seront conservés jusqu'au premier nextLine et renvoyer une ligne vide avant même de te donner le curseur pour faire ta saisie. Ce qui explique pourquoi le message d'erreur apparaît avant que tu n'ai tapé H ou F...
merci le problème était bien le sc.nextInt() j'ai vider le \n et sa fonctionne mais j'ai une nouvelle erreur.. j'ai mi une flèches la ou sa coince, merci
est-ce que je peux stocker mes instance ListeElectorale dans un tableau de cette manière?
Comme je n'ai pas encore vraiment chipoter a tout cela j'ai un petit doute
int nbListe = 5; ListeElectorale tabListe[] = new ListeElectorale[nbListe]; int i=0; do{ System.out.println("liste electorale n°"+(i+1)+"\nEntrer son nom:"); Erreur ici-> ListeElectorale l = new ListeElectorale(sc.nextLine()); tabListe[i] = l; ajouterCandidatDansListe(tabListe[i], 12); i++; }while(i<nbListe);
est-ce que je peux stocker mes instance ListeElectorale dans un tableau de cette manière?
Comme je n'ai pas encore vraiment chipoter a tout cela j'ai un petit doute
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
19 mars 2014 à 19:42
19 mars 2014 à 19:42
Il faudrait voir comment est faite la classe ListeElectorale, je ne peux pas la deviner...
Remarque : ta boucle do/while est compliquée. Pour des opérations simples on utilises la boucle for.
Remarque : ta boucle do/while est compliquée. Pour des opérations simples on utilises la boucle for.
int nbListe = 5; ListeElectorale tabListe[] = new ListeElectorale[nbListe]; for (int i=0; i<nbListe; i++) { System.out.println("liste electorale n°"+(i+1)); System.out.print("Entrer son nom : "); String line = sc.nextLine(); ListeElectorale liste = new ListeElectorale(line); // à vérifier ajouterCandidatDansListe(liste , 12); tabListe[i] = liste; }
ma classe "ListeElectorale est assez simple, un String nom et une variable de classe qui contient le nombre d'instance créée et pour finir un tableau d'objet Candidat. Un unique constructeur avec le nom en param. Sinon qq getteur et un setteur. Plus des fonctions pour interagir avec le tableau de Candidat.
Dans le code poster il n'y a aucune erreur?
Dans le code poster il n'y a aucune erreur?
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
19 mars 2014 à 20:17
19 mars 2014 à 20:17
"un unique constructeur avec le nom en param"
Si ce constructeur est bien fait, non il n'y a pas d'erreur.
Mais si tu as une erreur, 1) dis laquelle, 2) montre le code de ce constructeur...
Si ce constructeur est bien fait, non il n'y a pas d'erreur.
Mais si tu as une erreur, 1) dis laquelle, 2) montre le code de ce constructeur...
public class ListeElectorale { private String nom; private Candidat []tabCandidats = new Candidat[12]; private int nbCandListe; private int nbCandFemme; private int nbCandHomme; private static int nbListeElectorale = 0; public ListeElectorale(String nom) { this.nom = nom; nbListeElectorale++; } ...
j'ai oublier de parler des private int mais ça na pas d'importance...
exemple d'utilisation
Entrer son nom:
PS
Entrer les candidats, maximum 12
Candidat n°1
Nom:
Rillers
Prénom:
Tony
Age: (>=0)
25
Sexe: (H ou F)
H
Nationalite:
Belge
Domicile:
Belgique
Voulez-vous entrer un nouveau candidat? (O : Oui / N : Non)
O
O
liste electorale n°2
Entrer son nom:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at mainElection.testPousser(mainElection.java:65)
at mainElection.main(mainElection.java:8)
Modifié par hichiro le 19/03/2014 à 16:38
edit: non toujours rien.. la console: