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

 Java Discussion :

message erreur ArrayIndexOutOfBoundsException


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 47
    Par défaut message erreur ArrayIndexOutOfBoundsException
    bonjour à tous...

    voilà..je fais des exercices pour la base que je dois apprendre et là j'ai un bug. malgré mes recherche sur le net et mes essais...je seche...donc je viens vous voir...

    je dois faire un programme qui lit un nombre n sur une ligne de commande puis qui calcule et affiche la somme des n premiers nombres entiers..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // fichier nombren.java
     
    public class nombren {
    public static void main(String [] args) {
    int somme=0;
    int n=Integer.parseInt(args[0]);
    for(int i=0;i<10;i++) {
      somme+=i;
     System.out.println("somme :"+somme);
    }
    }
    }
    j'ai ce message d'erreur :

    C:\java\program1>java nombren
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 0
    at nombren.main(nombren.java:7)


    j'arrive à compiler le fichier nombren.java et quand je lance mon .class..j'ai çà..

    aidez moi svp

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu dois fournir un nombre en paramètre à ton programme sinon c'est normal que ça plante.

    Tu devrais tester ce qui est passé en paramètre pour éviter ce genre d'exeption.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int n=Integer.parseInt(args[0]);
    D'ailleurs, Ta variable "n" n'est pas utilisée dans ton code.

    Execution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\java\program1>java nombren 5 (par exemple)
    Une petite doc sur le passage des arguments

    http://java.sun.com/docs/books/tutor...dLineArgs.html

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 47
    Par défaut
    bonjour et merci pour votre reponse..

    vous avez raison le n dans le program n'est pas utiliser sauf pour l'execution du .clas... cet exercice fait parti de mon apprentissage du langage..

    mais j'ai noté ce ceci :

    le code d'origine de l'exercice est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // fichier nombren.java
     
    public class nombren {
    public static void main(String [] args) {
    int somme;
    int n=Integer.parseInt(args[0]);
    for(int i=0,somme=0;i<10;i++) {
      somme+=i;
     System.out.println("somme :"+somme);
    }
    }
    }
    mais impossible de le compiler.donc j'ai supprimer ,somme=0 de la boucle for et j'ai mis int somme=0; ( je suppose que la virgule pose probleme)

    ce qui donne le code (afficher plus haut):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // fichier nombren.java
     
    public class nombren {
    public static void main(String [] args) {
    int somme=0;
    int n=Integer.parseInt(args[0]);
    for(int i=0;i<10;i++) {
      somme+=i;
     System.out.println("somme :"+somme);
    }
    }
    }
    et là çà marche : je compile et je lance mon fichier nombren.class...

    mais j'ai oublier de mettre ce fameux n

    je lance java nombren 5 et j'ai l'affichage de la somme de 10 n premiers nombres...


    je suppose que le prof a voulu nous montre le lancement du programme par un parametre supplementaire ( le n)

    merci..

    juste pour savoir ? que veut dire le message dans mon titre ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    le message ArrayIndexOutOfBoundsException signifie que tu est en dehors des limites du tableau.

    Les arguments sont placés dans un tableau de taille variable.

    si tu ne fournis pas d'arguments tu auras un tableau null. et si tu essaies d'aller chercher un élément stocké dans args[0] -> la case 0 de ton tableau n'existe et ça te générera l'erreur mentionnée si dessus.

    Tu auras la même erreur si tu initialises un tableau de 10 éléments et que tu essaies d'aller chercher le 15 ème par exemple.


    Concernant ta boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class nombren {
    public static void main(String [] args) {
    int somme;
    int n=Integer.parseInt(args[0]);
    for(int i=0,somme=0;i<10;i++) {
      somme+=i;
     System.out.println("somme :"+somme);
    }
    }
    }
    Somme est défini deux fois c'est pour ça que ça ne compile pas de cette manière

    car

    est égal à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int i=0;
    int somme=0;
    et comme tu as déjà plus haut un

    Il y a double définition.
    Dernière modification par Invité ; 25/08/2008 à 15h07.

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

Discussions similaires

  1. Message erreur Windows 16 bits
    Par francis m dans le forum Windows XP
    Réponses: 2
    Dernier message: 24/04/2005, 16h29
  2. Message erreur InterBase
    Par tchaman dans le forum InterBase
    Réponses: 9
    Dernier message: 01/04/2005, 15h50
  3. [g++] message erreur etrange
    Par infotron dans le forum Autres éditeurs
    Réponses: 15
    Dernier message: 19/09/2004, 23h14
  4. [FLASH MX 2004] message erreur de classe
    Par matN59 dans le forum Flash
    Réponses: 3
    Dernier message: 14/06/2004, 08h59
  5. [Kylix] message erreur à l'ex
    Par JlouisI dans le forum EDI
    Réponses: 5
    Dernier message: 08/03/2003, 17h47

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