IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Scanner et java.util.NoSuchElementException


Sujet :

avec Java

  1. #1
    Candidat au Club
    Femme Profil pro
    technicienne outils digitaux
    Inscrit en
    Octobre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : technicienne outils digitaux
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2022
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Scanner et java.util.NoSuchElementException
    Bonjour,

    je débute dans la programmation java et j'utilise "Le Livre de Java premier langage" pour commencer à me former.

    J'ai un problème avec la fonction scanner. Le code que j'utilise est identique au corrigé du livre mais quand je lance le programme, j'obtiens : Exception in thread "main" java.util.NoSuchElementException.

    Après pas mal de recherches sur différents forums, j'ai compris que le fait que le scanner soit appelé plusieurs fois doit créer le problème mais je n'arrive pas à le résoudre. Quelqu'un aurait une réponse à m'apporter ?
    (je travaille actuellement avec un ordinateur sur lequel je ne peux pas installer de logiciel, je tape mes codes sur jdoodle avec le compiler ide....dans l'attente de m'en acheter un sur lequel je pourrai installer NetBeans ou Eclipse).

    Ci-dessous le programme principal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    import java.util.Scanner;
     
    public class Projet {
     
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		byte choix = 0;
    		String numéroLu = "";
    	    Scanner LectureClavier = new Scanner(System.in);
    Compte c = new Compte();
    do {
    choix = menuPrincipal();
    switch (choix) {
    case 1 : c.créerCpte();
    break;
    case 2 : 
    	System.out.println(c.numéroCpte);
    System.out.print("Quel compte souhaitez vous afficher ? :");
    numéroLu = LectureClavier.next();
    if (numéroLu.equalsIgnoreCase(c.numéroCpte)) c.afficherCpte();
    else System.out.println("Ce compte n'existe pas");
    break;
    case 3 : System.out.println("Option non activée");
    break;
    case 4 : sortir();
    break;
    case 5 : alAide();
    break;
    default : System.out.println("L'option n'existe pas");
    }
    }
    while (choix !=4);
    }
     
    	//Affiche le menu principal, retourne la valeur de l'option choisie
    	public static byte menuPrincipal() {
    	   	byte tmp;
    	   	Scanner LectureClavier = new Scanner(System.in);
    		System.out.println("1. Création d'un compte :");
    		System.out.println("2. Affichage d'un compte :");
    		System.out.println("3. Ecrire une ligne comptable :");
    		System.out.println("4. Sortir");
    		System.out.println("5. De l'aide");
    		System.out.println();
    		System.out.println("Votre choix : ");
    		tmp= LectureClavier.nextByte();
    		return tmp;
    	}
    	public static void sortir () {
    		System.out.println("Au revoir et à bientot");
    		System.exit(0);
    	}
    	public static void alAide() {
    		System.out.println("Option 1 : Pour créer un compte Courant entrer C ");
    		System.out.println("Pour créer un compte Joint entrer J");
    		System.out.println("Pour créer un compte épargne entrer J ");
    		System.out.print("Puis, entrer le numero du compte, et");
    		System.out.println(" sa première valeur créditée ");
    		System.out.println("Dans le cas d'un compte épargne, entrer le taux ");
    		System.out.println("Option 2 : Le système affiche les données du compte choisi ");
    		System.out.println("Option 3 : Ecrire une ligne compable");
    		System.out.println("Option 4 : Pour quitter le programme");
    		System.out.println("Option 5 : Pour afficher de l'aide");
    	}
    }
    La classe Compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    import java.util.Scanner;
     
    public class Compte {
     
    	public byte choix;
    	public String typeCpte;
    	public String numéroCpte=("");
    	public double val_courante = 0.0, taux = 0.0;
    	public Scanner LectureClavier=new Scanner(System.in);
     
     
    	public void créerCpte() {
    		char tmp;
    		do {
    			System.out.print("Type du compte [Types possibles :");
    			System.out.print("C(ourant), J(oint), E(pargne)] :");
    			tmp = LectureClavier.next().charAt(0);
    		} while (tmp !='C' && tmp != 'J' && tmp !='E');
    		switch (tmp){
    		case 'C' : typeCpte = "Courant";
    		break;
    		case 'J' : typeCpte = "Joint";
    		break;
    		case 'E' : typeCpte = "Epargne";
    		break;
    			}
    	System.out.print("Numéro de compte : ");
    		numéroCpte = LectureClavier.next();
    		System.out.print("Première valeur créditée :");
    		val_courante = LectureClavier.nextDouble();
    		if (tmp == 'E') {
    			System.out.print("Taux de placement :");
    			taux = LectureClavier.nextDouble();
    				}
    	}
    	public void afficherCpte() {
    			System.out.print("Le compte n° : "+ numéroCpte + "est un compte ");;
    			System.out.println(typeCpte);
    			if (typeCpte.equalsIgnoreCase ("Epargne")) {
    				System.out.println(" dont le taux est "+ taux);
    			System.out.println("Valeur courante : "+val_courante);
    		}
    	}
    }
    Merci d'avance pour vos réponses. J'espère que les codes se sont bien intégrés au message.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Hello,

    Citation Envoyé par joseligo Voir le message
    (je travaille actuellement avec un ordinateur sur lequel je ne peux pas installer de logiciel, je tape mes codes sur jdoodle avec le compiler ide....dans l'attente de m'en acheter un sur lequel je pourrai installer NetBeans ou Eclipse).
    tu sais c'est pas une bonne idée... L'outil est limité, ton code est moche, mal indenté, mal présenté et jdoodle ne peut pas t'aider à l'améliorer.

    Tout ça peut sembler être de petits détails pour un débutant complet, mais pourtant ce sont ces "détails" qui font la différence entre arriver ou non à quelque chose. Plus tu te créeras de problème qui n'ont pas de raison d'exister, moins tu avanceras.

    En plus il devrait être évident que jdoodle ne peut pas lire d'entrée utilisateur à moins d'être configuré pour ça, et c'est probablement la cause du problème.

    Par conséquent j'ai pas trop envie de me mêler de cette histoire tant que tu n'utiliseras pas de meilleures choses pour essayer de programmer. jdoodle et équivalent ça pourra éventuellement être un dépannage quand tu seras super à l'aise et que tu connaîtras bien comment ça fonctionne. Là maintenant, ça va pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Femme Profil pro
    technicienne outils digitaux
    Inscrit en
    Octobre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : technicienne outils digitaux
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2022
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse.

    Je comprends. Je vais patienter le temps d'avoir les bons outils .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exception in thread "main" java.util.NoSuchElementException
    Par mateolostanlen dans le forum Général Java
    Réponses: 18
    Dernier message: 04/01/2016, 11h37
  2. Exception in thread "main" java.util.NoSuchElementException
    Par hamzawhy dans le forum Général Java
    Réponses: 2
    Dernier message: 28/03/2014, 16h24
  3. Réponses: 6
    Dernier message: 26/07/2012, 11h13
  4. Erreur : java.util.NoSuchElementException
    Par jeremie64 dans le forum Général Java
    Réponses: 2
    Dernier message: 28/06/2011, 16h14
  5. java.util.NoSuchElementException: null de l'aide ?
    Par enzostar dans le forum Général Java
    Réponses: 2
    Dernier message: 23/10/2009, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo