Cara, existe diferença entre 0, nulo e não existe.
Você precisa considerar a maneira como o java lida com tais situações e, neste caso, a exceção será lançada assim que for identificado que há uma tentativa de acessar uma posição/índice inexistente no vetor/matriz
Mas me explica, onde exatamente eu tenho que mudar para solucionar isso?
Eu entendi agora, quando eu usei mat.lenght - 1
o vetor virou 2, ou seja 0 e 1 né?
Você só pode iterar nas linhas e colunas que estão dentro do limite de tamanho da matriz. Se a matriz tem ordem 3x3, você só pode ir de 0 a 2.
Qualquer tentativa de acessar posições fora desse intervalo, vai disparar erro.
Eu alterei algumas coisas e ainda não deu certo. A matriz 3x3 que o Java faz é essa?
0,0 0,1 0,2
0,0 0,1 0,2
0,0 0,1 0,2
Ou essa
0,0 0,1 0,2
1,0 1,1 1,2
2,0 2,1 2,2
Sempre será da esquerda para a direita, de cima para baixo, logo, é a segunda
Eu tive que mudar totalmente para funcionar
for (byte i = 0; i < 1; i++) {
System.out.println(mat[i][i+2]);
System.out.println(mat[i+1][i+1]);
System.out.println(mat[i+2][i]);
}
Entre 0 e 1 só tem uma iteração. Logo, o for é dispensável.
Então eu posso retirar o for e deixar o resto?
O que você está tentando fazer? Qual o objetivo?
Fazer um programa que mostre todas as diagonais de um matriz IxI, e depois achar o determinante
Para isso você só precisa iterar sobre ela, não tem que inventar de mostrar o índice + qualquer coisa ou índice - qualquer coisa.
Consegui resolver
for (byte i = 0; i < mat.length; i++) { byte a = 1; if (i == 0) { System.out.println(mat[i][n - a]); } if (i > 0) { System.out.println(mat[i][n - i - 1]); } }