Hola.
A ver si podéis resolverme esta duda( he leído las normas y no pido que me hagáis el ejercicio,ya que hecho ya está). Tengo un ejercicio de una matriz unidad,donde todos sus números son ceros excepto los de la diagonal principal.Os paso el código:
public static void main (String[] args) {
int [][] mUnidad= new int [4][4];
for (int i=0; i < mUnidad.length; i++) {
for (int j=0; j < mUnidad.length; j++) {
if (i == j) {
mUnidad[j]=1;
}else {
mUnidad[j] = 0;
}
}
}
for (int i=0; i < mUnidad.length; i++) {
for (int j=0; j < mUnidad.length; j++) {
System.out.print(mUnidad[j]+"\t");
}
System.out.println("");
}
}
}
Y el resultado sería:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Pues mi duda,no entiendo en que momento del for hace que la fila sea igual a la columna para que ponga 1 ó distinta para que sea 0. Porque por ejemplo he intentado darle unos valores a la matriz,es decir, inicializarla para ver manualmente donde se repite y donde va el 1 o el 0 y puse esto:
int [][]mUnidad={
{1,2,2,3},
{5,6,5,3},
{7,8,9,10},
{13,2,2,3}
};
Y bueno el resultado es el mismo, la matriz unidad con la diagonal a 1. Por lo que me deja perdido completamente. El que tengo más duda es en el primer for de i y j porque el segundo se que recorre lo guardado en el primer for y luego no muestra por pantalla.
¿Podéis sacarme de dudas ante este ejercicio? Gracias de antemano. Un saludo