Array index out of bounds

Messages postés
45
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
5 janvier 2009
- - Dernière réponse : Twinuts
Messages postés
5340
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
3 septembre 2019
- 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
Afficher la suite 

2 réponses

0
Merci
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
Commenter la réponse de Utilisateur anonyme
Messages postés
5340
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
3 septembre 2019
88
0
Merci
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
Commenter la réponse de Twinuts