Auxílio em matrizes

Boa noite pessoal, gostaria de saber se existe uma forma mais simplificada pro código que montei abaixo. O código é uma matriz que recolhe 4 notas de 4 alunos e depois imprime pro usuário.

import java.util.*;

public class Matrizes {

public static void main(String[] args) {

	Scanner sc = new Scanner(System.in);

	double[][] notasAlunos = new double[4][4];

	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.println("Informe as notas do aluno 1: ");
		notasAlunos[0][i] = sc.nextDouble();
	}
	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.println("Informe as notas do aluno 2: ");
		notasAlunos[1][i] = sc.nextDouble();
	}
	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.println("Informe as notas do aluno 3: ");
		notasAlunos[2][i] = sc.nextDouble();
	}
	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.println("Informe as notas do aluno 4: ");
		notasAlunos[3][i] = sc.nextDouble();
	}

	System.out.print("Aluno 1: ");
	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.print(notasAlunos[0][i] + " ");
	}

	System.out.print("\nAluno 2: ");
	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.print(notasAlunos[1][i] + " ");
	}

	System.out.print("\nAluno 3: ");
	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.print(notasAlunos[2][i] + " ");
	}

	System.out.print("\nAluno 4: ");
	for (int i = 0; i < notasAlunos.length; i++) {
		System.out.print(notasAlunos[3][i] + " ");
	}
}

}

Acho que dá sim pra simplificar usando loops pra pegar as notas e mostrar o resultado assim:

class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    final var quantidadeDeNotas = 4;
    final var quantidadeDeAlunos = 4;

    double[][] notasAlunos = new double[quantidadeDeAlunos][quantidadeDeNotas];

    for (int i = 0; i < quantidadeDeAlunos; i++) {
      for (int j = 0; j < quantidadeDeNotas; j++) {
        System.out.printf("Informe a nota %d° do aluno %d: ", j + 1, i + 1);
        notasAlunos[i][j] = sc.nextDouble();
      }
    }

    for (int i = 0; i < quantidadeDeAlunos; i++) {
      System.out.printf("\nAluno %d: ", i + 1);

      for (int j = 0; j < quantidadeDeNotas; j++) {
        System.out.print(notasAlunos[i][j] + " ");
      }
    }
  }
}

Mas o ideal mesmo seria criar uma classe Aluno que possui 2 atributos, o nome e uma array de dobles que seriam as notas.

1 curtida

Obrigadão, mano!
Tentei fazer isso logo antes de você comentar e deu certo. Mas mesmo assim agradeço pela ajuda!

1 curtida