Array index out of bounds

themessenger
Messages postés
45
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
5 janvier 2009
- 4 déc. 2007 à 20:10
Twinuts
Messages postés
5372
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
- 5 déc. 2007 à 09:39
the messenger





class TestMatrices {










        /** le main */
  
    public static void main(String[] args) {
  
  /*declaration des varriables et des tableaux*/
  
  int[][] tab1;
    int nbLignesTab1;
  int nbColonnesTab1;
  int i;
  int j;
        /*on demandes a l'utilusateur de saisir le nombre de lignes
   et le nombre de colonnes du tableau tab1*/
  
  nbLignesTab1 = Console.readInt("Saisir le nombre de lignes du tableau tab1:");
  nbColonnesTab1 = Console.readInt("Saisir le nombre de colonnes du tableau tab1 :");
  
  
  tab1 = new int [nbLignesTab1][nbColonnesTab1];
  
 /*saisit de valeurs du tableau tab1*/
  
  for (i = 0;i < tab1.length;i ++) {
       for (j = 0;j < tab1[0].length;j ++) {
       tab1[i][j] = Console.readInt("Saisir les valeurs de la ligne " + i + " du tableau"); 
                tab1[i][j] = Console.readInt("Saisir les valeurs de la colonne " + j + " du tableau");
             }
    System.out.println("tab1["+i+"]["+j+"] = " +tab1[i][j]); 
        }
     
 }
 voila c mon programme si je l'execute il m'afiche exeoton in thread:array index out of bonds g reli le prog mé je trouve pa ce ki va pa help m
A voir également:

2 réponses

Utilisateur anonyme
4 déc. 2007 à 23:18
Essaie ça :

for (i = 0;i <




nbLignesTab1





;i ++) {
       for (j = 0;j <




nbColonnesTab1





;j ++)

Là ça devrait marcher. Fais un peu plus d'investigation avant de poster un code et évite les fautes d'orthographe, "variable" ça prend un seul "r". "on demandes" ça s'écrit plutôt "on demande"...







TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
Twinuts
Messages postés
5372
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
111
5 déc. 2007 à 09:39
Salut,

sinon :

for (i = 0;i < tab1.length;i ++) {
       for (j = 0;j < tab1[ i ].length;j ++) {

       [...]
     }
}

de plus ton :
System.out.println("tab1["+i+"]["+j+"] = " +tab1[i][j]);

n'est pas placé au bon endroit... au moment ou tu utilises 'j' il dépassera toujours de 1 la taille de tab1[i]...

ensuite ton affectation lignes colonnes ne sert à rien....
tab1[i][j] = Console.readInt("Saisir les valeurs de la ligne " + i + " du tableau"); 
tab1[i][j] = Console.readInt("Saisir les valeurs de la colonne " + j + " du tableau");

tu n'as pas l'impression de faire la même chose ?

bref la boucle qui aurait le plus de sens :
for (int i = 0; i < tab1.length; ++i) {
    for (int j = 0; j < tab1[i].length; ++j) {
        tab1[i][j] = Console.readInt("Saisir les valeurs de la ligne " + i + " colonne " + j + " du tableau");

        System.out.println("tab1[" + i + "][" + j +"] = " +tab1[i][j]);

    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0