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 :

initialiser un tableau à deux dimensions


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut initialiser un tableau à deux dimensions
    Bonjour,

    j'essaie d'afficher le contenu d'un tableau à deux dimensions, mais un message d'erreur apparaît:

    java.lang.ExceptionInInitializerError


    Je ne vois pas où est mon erreur, je pense que j'ai bien intialisé le tableau.
    Voici le code

    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
     
    public class Tableau {
     
        int x=1;
        int [][] tab = new int[3][5];
     
        public Tableau(){
     
            for (int i=0; i<=tab.length;i++)
            for (int j=0; j<=tab[i].length;j++)
                tab[i][j]=2+x;
        }
     
        public void Affiche(){
            for (int i=0; i<=tab.length;i++)
            for (int j=0; j<=tab[0].length;j++)
                System.out.println(" " + tab[i][j]);
        }
     
    }
    et pour le main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class AfficheTableau {
     
        static Tableau table = new Tableau();
     
        public static void main (String [] args){
     
            table.Affiche();
     
        }
     
    }
    Des idées?
    Merci

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    L'exception levé ne serait pas plutot une ArrayIndexOutOfBoundsException
    Dans tes for, tu dépaces la capacité de tes tableaux car tu fais variable <= tableau.length
    Donc par exemple, pour un tableau de taille 3, tu vas parcourir les indices de 0 à 3, c'est à dire 4 indices au lieu des 3

    Bref, essayes plutot ca;
    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
    public class Tableau {
     
        int x = 1;
        int[][] tab = new int[3][5];
     
        public Tableau() {
     
            for (int i = 0; i < tab.length; i++)
                for (int j = 0; j < tab[i].length; j++)
                    tab[i][j] = 2 + x;
        }
     
        public void Affiche() {
            for (int i = 0; i < tab.length; i++)
                for (int j = 0; j < tab[0].length; j++)
                    System.out.println(" " + tab[i][j]);
        }
     
    }

  3. #3
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut
    En effet, en effet.
    maintenant le problème est autre.
    Message:

    Exception in thread "main" java.lang.IncompatibleClassChangeError: Expected static method Tableau.Affiche()V


    et la ligne pointée est:

    table.Affiche();

    Mais si je fait static la méthode Affiche() c'est encore pire

  4. #4
    Membre du Club Avatar de bandit_debutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 69
    Points
    69
    Par défaut
    Bon, j'ai rien dit, maintenant ça marche.
    Merci zorm

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/06/2012, 13h17
  2. initialiser un tableau à deux dimensions
    Par adel25 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/12/2011, 12h39
  3. Réponses: 22
    Dernier message: 18/07/2006, 18h58
  4. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 21h38
  5. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50

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