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 :

Erreur de débutant


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Par défaut Erreur de débutant
    Bonjour
    Aprés execution de mon programme ci dessous, il ya cette erreur qui s'affiche :Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 4 at TestTableauEntiers.main(TestTableauEntiers.java:21)
    D'aprés ce que j'ai compris,il ya un dépassement du tableau..mais je ne vois pas ou, pouvez vous m'aider?
    Existe t-il un debugger en java?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class  TableauEntiers {
      public static  int somme(int[]tab){
          int s = 0;
          for(int i = 0; i<tab.length; i++)
    	  s += tab[i];
          return s;  
      }
    }
    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
    public  class TestTableauEntiers{
        private static void usage(){ 
    	System.err.println("usage : somme..");
    	System.exit(1);
        }
        public static void main (String[]args){
    	int i;
    	if(args.length == 0)
    	    usage();
    	else
    	    {	int[]tab= new int[args.length];
    		for (i=0; i<=tab.length ; i++);
    		tab[i]= Integer.parseInt(args[i]);
    		System.out.println( "somme" +TableauEntiers.somme(tab));
    	    }  
        }
    }

  2. #2
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    normalement il te donne la ligne si tu catch l'exception et que tu fait un printstacktrace


    pour info l'erreur est dans le scond bout de code que tu as donné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (i=0; i<=tab.length ; i++);

  3. #3
    Membre chevronné
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 158
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int i;
    ...
    for (i=0; i<=tab.length ; i++);
    tab[i]= Integer.parseInt(args[i]);
    Je vois deux problèmes dans ce code:

    Premièrement, l'instruction "tab[i] = ..." n'est pas dans la boucle. Du coup, l'instruction est toujours exécutée une et une seule fois, avec i=0 (valeur par défaut d'un entier).
    Enlève le point-virgule.
    Et tant qu'à faire:
    Ajoute des accolades autour de l'instruction qui doit être dans la boucle, ce n'est pas nécessaire mais ça rend le code plus clair.
    Evite de déclarer ta variable de boucle en dehors de la boucle.

    Deuxièmement, même si la boucle était bien écrite, il y a un problème de borne : un tableau de n cases est numéroté de 0 à n-1, or tu fais varier la variable i de 0 à n.


    Correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i=0; i<tab.length ; i++)
    {
       tab[i]= Integer.parseInt(args[i]);
    }

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Par défaut
    Merci à vous ^^

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par bbawa Voir le message
    D'aprés ce que j'ai compris,il ya un dépassement du tableau..mais je ne vois pas ou,
    Comme vous le dit l'erreur: a la ligne 21.
    En l'occurence, le code correct est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		for (i=0; i<tab.length ; i++);
    		tab[i]= Integer.parseInt(args[i]);
    puisque les tableau ont un index basé sur 0

    Existe t-il un debugger en java?
    Il existe DES debuggers en java, la plsupart intégrés aux IDE

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

Discussions similaires

  1. L'erreur du débutant ?
    Par Enkahel dans le forum Débuter
    Réponses: 1
    Dernier message: 04/05/2007, 10h33
  2. Erreur de débutant
    Par michel71 dans le forum Débuter
    Réponses: 2
    Dernier message: 10/12/2006, 14h21
  3. [SQL] Erreur grand débutant echo / $data
    Par carelha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/05/2006, 12h01
  4. Message d'erreur pour débutant
    Par PhpDeb dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 27/04/2006, 12h14
  5. erreur de débutant
    Par michel71 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 08/03/2006, 00h26

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