Salut,
Avant tout il faut définir dans (0,0) que représentent la première valeur et la seconde. Logiquement, le premier correspond à l'indice de la première dimension, qu'on appelle habituellement ligne. Le second correspond donc à la seconde dimension, appelée habituellement colonne.
Dans la série suivante, on voit que l'indice de ligne évolue pendant que l'indice de colonne n'évolue pas, puis l'indice de colonne évolue, et on recommence la même boucle sur l'indice de ligne.
(0,0) = 1 // 0,0 sont des indices et 1 est l'élément
(1,0) = 4
(0,1) = 2
(1,1) = 5
(0,2) = 3
(1,2) = 6
On doit donc avoir une boucle sur les colonnes, avec à l'interieur une boucle sur les lignes :
1 2 3 4 5
| for(int colonne=0; colonne<3; colonne++) {
for( int ligne=0; ligne<2; ligne++) {
System.out.println("("+ligne+","+colonne+")");
}
} |
Il faut absolument pouvoir se représenter comment le tableau est rempli :
On voit donc que si on veut remplir le tableau avec des chiffres de 1 à 6, en incrémentant une variable, il faudrai remplir d'abord la première ligne, puis la seconde.
1 2 3 4 5 6
| int chiffre = 1;
for (int ligne = 0; ligne < 2; ligne++) {
for (int colonne = 0; colonne < 3; colonne++) {
tab[ligne][colonne] = chiffre++;
}
} |
On peut également chercher à déterminer la ligne et la colonne en fonction du chiffre à placer : ligne=(chiffre-1)/3 et colonne=(chiffre-1)%3.
1 2 3 4 5
| for(int chiffre=1; chiffre<=6; chiffre++) {
int ligne=(chiffre-1)/3;
int colonne=(chiffre-1)%3;
tab[ligne][colonne]=chiffre;
} |
Cette manière de faire à l'avantage de ne pas créer de variables (chiffre en particulier) dont le scope s'étend inutilement à l'ensemble de la méthode.
A noter que dans ton code, tu as bien 2 boucles, mais toutes les deux non seulement affichent le contenu du tableau, mais en plus remplissent le tableau en faisant évoluer la même variable (le second tableau est donc rempli de 7, 8, 9, 10, 11 et 12).
Partager