J'ai besoin d'aide par lé orienté objéts Java

Résolu
Cybertrack Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Cybertrack Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir tout le monde, voila j'ai presque terminé un exercice sur Java qui traite oriente objet , mais j'ai trouvé dés difficulté dans le main , l'exercice a demandé de faire un menu
qui permet d'ajouter supprimer etc .. comme cela

1=Ajouter lecteur
2=Supprimer Electeur
3=recherche Electeur Par numero

1
veuillez ajouter le nom
veuillez ajouter le prenom

mais le problème quand l'utilisateur saisit par exemple 1 il s'affiche automatiquement veuillez ajouter le nom
veuillez ajouter le prenom

mais je veux qu'il s'affiche juste veuillez ajouter le nom puis quand l'utilisateur saisit il s'affiche le 2em message veuillez ajouter le prenom voila le code source

public static void main(String[] args) {
		// TODO Auto-generated method stub
		int rep;
		
		Scanner scr=new Scanner(System.in);
		ListeElectorale Electoral=new ListeElectorale();
		
		do{
		
		System.out.println("1=Ajouter lecteur \n2=Supprimer Electeur \n3=recherche Electeur Par numero \n4=Taux du vote \n5=Enregistrer La liste des électeur");
		rep=scr.nextInt();
		
		switch(rep){
		
		case 1:{
			
			System.out.println("veuillez ajouter le nom");
			String nom=scr.nextLine();
			System.out.println("veuillez ajouter le prenom");
			String prenom=scr.nextLine();
			System.out.println("veuillez ajouter la date naissance");
			int date=scr.nextInt();
			System.out.println("veuillez entrer la ville");
			String ville=scr.nextLine();
			System.out.println("veuillez entrer le numero de bureau de vote");
			int numerobureauvpte=scr.nextInt();
			
			 Electeur electeur=new Electeur(nom,prenom,date,ville,numerobureauvpte);
			
			if(Electoral.ajouterElecteur(electeur)){
				
				System.out.println("electeur a été ajouté");
				
			}
			
			else{
				
				System.out.println("erreur lors de l'ajoute");
				
			}
			
			
			
			break;
		}
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'est un effet de bord de la lecture clavier.
En lisant un entier avec nextInt, il lit également la fin de ligne, et il la "stocke" dans la pile, pour la consommer au premier nextLine (lorsque tu demandes le nom), c'est pour ça que tu passes directement au prénom.

Solution : rajoute un nextLine qui ne sert "à rien", juste après ton nextInt :
rep=scr.nextInt(); scr.nextLine();
Remarque : je suis sûr qu'en poussant un peu plus l'orienté objet dans ton code tu arriverais à faire une méthode lireElecteur qui permettrait de réduire la taille de ton main ;-)
1
Cybertrack Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci mr KX votre réponse a été utile j'ai une autre questionne svp comment créé une exception nommé ageexeption qui se déclenche si l'age est inferieure a 18

pouvez vous me donné un exemple ? je connais rien en exception :s
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il faut simplement rajouter ce code :

throw new AgeException(/*paramètres éventuels*/);

Il faut bien sûr que la classe AgeException surcharge la classe Exception.
0
Cybertrack Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
merci une autre fois Mr Kx : )
0