En uno de los comentarios al artículo que explica cómo Cargar una matriz por teclado en Java nos preguntaban sobre cómo podíamos imprimir una matriz con Java.
Y es que en el artículo sobre Cargar una matriz por teclado en Java lo que hacíamos era mostrar la matriz por posiciones. Ahora la idea es imprimirla de una forma más matemática. Algo parecido a:
Así que vamos con la tarea de imprimir una matriz con Java. Lo primero será cargar la matriz. No nos vamos a complicar mucho y lo que vamos a hacer es cargarla directamente.
int matriz[][] = new int[3][3];
matriz[0][0] = 2;
matriz[0][1] = 4;
matriz[0][2] = 4;
matriz[1][0] = 6;
matriz[1][1] = 6;
matriz[1][2] = 9;
matriz[2][0] = 8;
matriz[2][1] = 10;
matriz[2][2] = 1;
Recuerda que las matrices en Java son arrays bidimensionales. Es por ello que la definición tienen dos dimensiones.
Ahora pasaremos a imprimirla. Para ello utilizamos dos estructuras for anidadas. La primera irá incrementando las filas, es decir, el valor de la X y la segunda incrementará por cada fila el valor de las columnas, es decir, la Y.
for (int x=0; x < matriz.length; x++) {
for (int y=0; y < matriz[x].length; y++) { ... }
}
Vemos que los bucles for van desde la posición 0 hasta el tamaño que tenga la matriz Java. En el caso de las filas será el tamaño general
matriz.length;
Y en el caso de cada fila fijamos la dimensión x.
matriz[x].length;
Ahora, por cada fila vamos a imprimir los elementos, pero sin salto de línea. Es decir utilizando un System.out.print:
for (int y=0; y < matriz[x].length; y++) {
System.out.print (matriz[x][y]);
if (y!=matriz[x].length-1) System.out.print("\t");
}
Además hemos añadido, una tabulación, es decir, una separación entre cada posición. La tabulación la aplicaremos detrás de cada número, excepto del último. Es por ello que hacemos la validación:
if (y!=matriz[x].length-1) System.out.print("\t");
Recuerda que las tabulaciones se consiguen mediante el carácter escapado \t
Una vez impresa cada fila, ahora es cuando hay que dar un salto de línea mediante un System.out.println
for (int x=0; x < matriz.length; x++) {
for (int y=0; y < matriz[x].length; y++) {
System.out.print (matriz[x][y]);
if (y!=matriz[x].length-1) System.out.print("\t");
}
}
Ya solo nos quedará meter algún decorador adicional, al gusto, y el código final Java que nos imprimirá la matriz quedará de la siguiente forma:
for (int x=0; x < matriz.length; x++) {
System.out.print("|");
for (int y=0; y < matriz[x].length; y++) {
System.out.print (matriz[x][y]);
if (y!=matriz[x].length-1) System.out.print("\t");
}
System.out.println("|");
}