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

Collection et Stream Java Discussion :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at tableau.main(tableau.java:12)


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Points : 103
    Points
    103
    Par défaut Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at tableau.main(tableau.java:12)
    Bonjour tous le monde,

    Je veux ecrire un programme qui place les nombres passés en paramètres dans un tableau, puis calcule et affiche le minimum, le maximum et la somme de ces nombres.

    j'ai trouvé cette solution:
    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
     
    public class tableau {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		int[] t =new int[args.length] ;
    		for( int i=0;i<=args.length;i++)
    		{
    		System.out.print("t["+(i+1)+"]=");
    		t[i]=Integer.parseInt(args[i]);
    		}
    		int max=t[0],min=t[0];
    		for(int i=1;i<args.length;i++)
    		{
    		if (t[i]>max)
    		max=t[i];
    		if (t[i]<min)
    		min=t[i];
    		}
    		System.out.println("le min = "+min);
    		System.out.println("le max = "+max);
     
    	}
     
    }
    cependant j'ati cette exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    	at tableau.main(tableau.java:12)
    t[1]=
    J'ai besoin de votre aide, Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

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

  3. #3
    Membre régulier
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Points : 103
    Points
    103
    Par défaut
    Est ce que vous pouvez être plus précis?
    car j'ai toujours la même exception, même avec .
    Merci.

    PS: j’exécute sous eclipse .

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,

    L'indice d'un tableau commence par 0 et se termine par (length-1). Avec "i<= args.length", tu tentes d'accéder à l'indice (length) du tableau or que ça dépasse la dimension du tableau, d'où l'erreur. D'ailleurs, tu dois tester aussi s'il y a au moins 1 argument passer pendant l’exécution.

    A+.

  5. #5
    Membre régulier
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Points : 103
    Points
    103
    Par défaut
    Merci pour ce petit rappel sur les indices des tableaux, effectivement j'ai tester avec , et j'ai toujours la même exception,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    	at tableau.main(tableau.java:13)
    je dirais qu'il n'y aucun argument qui passe pendant l’exécution.

    Comment je peux tester s'il y a au moins un argument pendant l’exécution.

    Merci.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Lance en mode console après la compilation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java tableau 1 2 3 8 0 15

  7. #7
    Membre régulier
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Points : 103
    Points
    103
    Par défaut
    Merci pour ta proposition ,en fait ca marche en mode console, mais pas avec l'IDE Eclipse, est ce qu'il y aura une solution ?
    Car, j'essai d'entrée les valeurs après la compilation de mon programme (en effet on entre les valeurs avant la compilation en utilisant une méthode), on forçant la JVM à demander des entrées par la méthodes Integer.parceInt() et je ne sais pas si Eclipse support une telle chose.

    Merci pour votre aide.

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Dans le menu run, crée un "Run Configuration" pour java application, tu trouveras un onglet pour sélectionner la classe qui contient le Main et un onglet pour ajouter les arguments.

    A+.

  9. #9
    Membre régulier
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Points : 103
    Points
    103
    Par défaut
    Oui, ça marche merci pour ton aide précieux.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/12/2014, 12h02
  2. Réponses: 1
    Dernier message: 21/03/2012, 15h08
  3. Réponses: 0
    Dernier message: 23/12/2009, 10h56

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