Considere:
int[][] multD = new int[5][];
multD[0] = new int[10];
É assim que você cria uma matriz bidimensional com 5 linhas e 10 colunas?
Eu vi este código online, mas a sintaxe não'não faz sentido.
Tente o seguinte:
int[][] multi = new int[5][10];
... que é uma mão curta para algo assim:
int[][] multi = new int[5][];
multi[0] = new int[10];
multi[1] = new int[10];
multi[2] = new int[10];
multi[3] = new int[10];
multi[4] = new int[10];
Note que cada elemento será inicializado com o valor padrão para int
, 0
, portanto os acima também são equivalentes a:
int[][] multi = new int[][]{
{ 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 }
};
A linguagem mais comum para criar uma matriz bidimensional com 5 linhas e 10 colunas é:
int[][] multD = new int[5][10];
Alternativamente, você poderia usar o seguinte, que é mais similar ao que você tem, embora você precise inicializar explicitamente cada linha:
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
Tente:
int[][] multD = new int[5][10];
Note que no seu código apenas a primeira linha da matriz 2D é inicializada a 0.
A linha 2 a 5 don'nem sequer existe. Se você tentar imprimi-los você'vai obter nulo
para todos eles.