Lorsque l'on définit un tableau (voir : déclarer un tableau) les crochets indiquent le nombre de dimensions du tableau. Un tableau à plusieurs dimensions (multidimensionnels) est donc un tableau contenant au minimum 2 tableaux.
int tab[][] = new int [5][7]
Ci-dessus nous avons initialisé un tableau du nom de “tab” à 2 dimensions. Cela signifie qu'il y aura un certain nombre de ligne et de colonne.
[5] correspond au nombre de lignes
[7] correspond au nombre de colonnes (ou l'inverse, mais il y a toujours un nombre de ligne et de colonne, tout dépend de votre logique !)
/!\ Un tableau commence à 0 !
Pour initialiser un tableau à plusieurs dimensions il faut mettre autant d'accolades que l'on veut qu'il y ait de lignes et de colonnes remplis de données.
Exemple :
int tab[][] = {{7, 21, 9}, {47, 12, 16}};
Il y aura :
-2 lignes dans le tableau car il y a 2 accolades différentes → {7, 21, 9} et {47, 12, 16}
-3 colonnes sur la ligne 1 et 2 car il y a 3 informations sur ces 2 lignes → 7, 21, 9 et 47, 12, 16
Attention !
Chaque ligne peut avoir un nombre de colonne différente des autres.
Exemple :
int tab2[][] = {{7, 21, 9, 97, 45}, {47, 12}};
Cette fois ci, il y aura :
-2 lignes → {7, 21, 9, 97, 45} et {47, 12}
-Dans la première ligne il y aura 5 colonnes 7, 21, 9, 97, 45 et dans la seconde ligne il y aura 2 colonnes 47, 12
L'utilisation est semblable à un tableau basique.
Exemple :
int tab2[][] = {{7, 21, 9, 97, 45}, {47, 12}}; println(tab2[1][1]); println(tab2[0][3]);
Ci-dessus, le programme nous affichera 12 puis 97.
La première case [] nous informe sur quelle ligne, accolade nous allons traiter.
La seconde case [] nous informe sur quelle colonne, donnée, nous allons traiter.
Voici une image qui résume clairement ce qui a été dit précédemment :
Source : openclassrooms.com
Exemples :
int i; int j; int n; void main() { int tab [][] = new int [4][3]; for(i = 0; i <= 3; i++) { for(j = 0; j <= 2; j++) { n = readInteger(); tab[i][j] = n; println(tab[i][j]); } } println(tab[2][2]); }
Ce programme créer un tableau de 4 lignes et de 3 colonnes (12 cases) où à l'aide de 2 boucles for nous entrons des entiers n dans chaque case d'ordre croissant ([0][0] → [0][1] → [0][2] → [1][0] → etc…) et qui l'affiche directement dans la console.
Pour vérifier notre programme, nous demandons à la fin la case tab[2][2] qui correspond à la 8e case du tableau.
Je rentre 12 entiers de 1 à 12 et le résultat est :
Compilation réussie ! 1 2 3 4 5 6 7 8 9 10 11 12 9
Le programme marche donc puisque la dernière ligne montre tab[2][2] qui est la 8e cases, donc 9 (la case 0 est 1 !).
Cours précédent : lire dans un tableau
Cours suivant : récapitulatif des fonctions
Page créée par QUINQUENEL et corrigée par RASTEL