Tableau 3D avec Java (exemple de test de " Java: La référence complète, 9ème édition)
J'essayais de reproduire un code du livre que je lis et je n'arrive pas à le faire fonctionner. Voici le code:
public class ThreeDArray {
public static void main(String[] args) {
int threeD [][][] = new int [3][4][5];
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
threeD [i][j][k] = i*j*k;
}
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.print(threeD[i][j][k]+" ");
}
System.out.println("");
}
System.out.println("");
}
}
}
}
J'obtiens cette sortie:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Je reçois tous les zéros ici et je ne trouve pas l'erreur ici. Veuillez indiquer quel est le problème ici.
0
1 answers
Mauvais placement de parenthèse: votre deuxième for
boucle devrait être en dehors de la première:
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.printf("%d %d %d %d %n", i, j, k, i * j * k);
threeD [i][j][k] = i*j*k;
}
}
} // move to here ...
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 5; k++) {
System.out.print(threeD[i][j][k]+" ");
}
System.out.println("");
}
System.out.println("");
}
// ... from here
Avec la façon dont vous l'aviez, vous incrémentiez i
avec votre boucle d'impression, ce qui signifiait que votre première boucle de i
quittait la deuxième itération. Maintenant, il imprime:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 0 2 4 6 8 0 3 6 9 12 0 0 0 0 0 0 2 4 6 8 0 4 8 12 16 0 6 12 18 24
1
Author: Andy Brown, 2015-01-20 20:48:25