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

Langage Java Discussion :

Erreur à l'éxecution -> java.lang.ArrayIndexOutOfBoundsException


Sujet :

Langage Java

  1. #1
    Membre régulier
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Points : 72
    Points
    72
    Par défaut Erreur à l'éxecution -> java.lang.ArrayIndexOutOfBoundsException
    Bonjour,

    Je commence à concevoir mon Travail pratique.

    Mise en situation :

    J'ai deux tableaux, dont la grandeur doit commencer à 1 ou l'index à 0.

    mes variables nbEffectifDeComptes et nbEffectifDeClients seront des variables pour limiter la grandeur de mes tableaux en fonction du besoin.

    J'ai essayé de les initialisées à 0 et puis changer les valeurs à 1 juste avant
    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
    public class Banque 
    {
        public static final int NBCompteMax = 100; // nombre max de comptes de la banque 
        public static final int NBClientMax = 200; // nombre max de clients de la banque
        public static Scanner clavier = new Scanner(System.in);// Autres m�thodes s'il y a lieu
        public static int nbEffectifDeComptes;
        public static int nbEffectifDeClients;
        public static Client unClient; // Création de l'objet client pour toutes les méthodes de la classe Banque
        public static Compte unCompte; //Création de l'objet compte pour toutes les méthodes de la classe Banque
        public static Client [] listeDesClients; //Création du tableau de la liste des clients pour toutes les méthodes de la classe Banque
        public static Compte [] listeDesComptes; //Création du tableau des comptes bancaires pour toutes les méthodes de la classe Banque
     
        public static void main (String[] params) 
        {        
            listeDesClients = new Client [nbEffectifDeClients];
            listeDesComptes = new Compte [nbEffectifDeComptes];           
            unClient = new Client("Tartampion", "Toto", "125 Sherbrooke Est");
            nbEffectifDeComptes = 1;
            nbEffectifDeClients = 1;       
            listeDesClients[nbEffectifDeClients] = unClient; 
         }
    }
    Pour des raisons que j'ignore vue mon apprentissage encore modeste de la programmation, pourquoi j'obtiens ce message là ?
    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Au moment où listeDesClients = new Client [nbEffectifDeClients];, nbEffectifDeClients vaut 0, donc le tableau a pour taille 0.

    Quand listeDesClients[nbEffectifDeClients] = unClient; s'exécute, nbEffectifDeClients vaut 1, donc on essaye de mettre un client dans une case qui n'existe pas, qui est hors des limites du tableau (ce que signifie l'erreur "Array : Index Out Of Bound Exception").


    Tu dois donner une dimension à ton tableau, qui sera le maximum de clients que tu pourras stocker, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     listeDesClients = new Client [NBClientMax];
    Et t'arranger dans ton programme pour ne pas dépasser le nombre de NBClientMax =200 clients maximum, donc empêcher nbEffectifDeClients de dépasser NBClientMax-1 .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/08/2013, 19h45
  2. Réponses: 4
    Dernier message: 18/04/2013, 11h41
  3. Réponses: 1
    Dernier message: 07/09/2012, 18h14
  4. Erreur : java.lang.ArrayIndexOutOfBoundsException
    Par the watcher dans le forum Langage
    Réponses: 10
    Dernier message: 22/09/2010, 19h56
  5. Erreur java lang.ArrayIndexOutOfBoundsException
    Par lerorodu51 dans le forum NetBeans
    Réponses: 8
    Dernier message: 04/06/2009, 20h17

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