Boa noite à todos,
Comecei a aprender Java ontem. Eu já tenho bastante noção da linguagem C, então, a maioria do que eu estou fazendo, eu estou deduzindo de como “seria”. Se der erro, eu vou buscar em algum outro lugar a informação que eu quero.
Bem, sem mais enrolações. O problema é o seguinte: eu fiz um algoritmo em Java semelhante ao que eu faria em C, com “funções” ou métodos (uma galerinha gosta de chamar assim). Enfim, ele funciona perfeitamente se eu requisitar as funções apenas uma vez. Agora, se eu criar outra variável e forçar essa nova variável a fazer “parte” dessa função, ele simplesmente dá erro. E o erro é só quando chega na linha da segunda requisição da função. Sem mais delongas, o código é este:
import java.util.Scanner;
public class Matrizes {
public static void lerMatriz(int m, int n, int[][] matriz) {
System.out.printf("%n");
try(Scanner entrada = new Scanner(System.in)) {
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
System.out.printf("Entre com a posição (%d, %d): ", i, j);
matriz[i][j] = entrada.nextInt();
}
}
}
}
public static void imprimirMatriz(int m, int n, int[][] matriz) {
System.out.printf("%nMatriz impressa: %n%n");
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
System.out.printf("%4d ", matriz[i][j]);
}
System.out.println("");
}
System.out.printf("%n");
}
public static void main(String[] args) {
int m, n;
try(Scanner entrada = new Scanner(System.in)) {
System.out.print("Digite a quantidade de linhas da matriz: ");
m = entrada.nextInt();
System.out.print("Digite a quantidade de colunas da matriz: ");
n = entrada.nextInt();
int[][] matriz = new int[m][n];
int[][] matriz2 = new int[m][n]; // (1) E essa, claro.
lerMatriz(m, n, matriz);
imprimirMatriz(m, n, matriz);
lerMatriz(m, n, matriz2); // Se tirar essa linha,
imprimirMatriz(m, n, matriz2); // E essa, ele funciona normalmente. (1)
}
}
}
Edit: É um código simples para imprimir uma matriz na qual o usuário digite.
Como eu havia dito, estou me baseando no mesmo método que seria em C, então, se puderem me dizer o que eu estou fazendo de errado, fico extremamente grato.