Poo

alguém consegue me ajudar nesse exercício

public class Exemplo01 {

/**
 * Fazer um programa que inicie com todos os dez quartos vazios,
 * e depois leia uma quantidade N representando o número de estudantes
 * que vão alugar quartos(n pode ser de 1 a 10),
 * em seguida registre o aluguel dos N estudantes para cada registro de aluguel,
 * informa o nome e e-mail do estudantes, bem como qual dos quartos ele escolheu (0 a 9).
 * Suponha que seja escolhido o quarto vago. ao final seu programa deve imprimir um relatório
 * de todas ocupações do pensionato, por ordem de quarto conforme exemplo.
 */
public static void main(String[] args) {
    String relatorio = "Quarto n°: %s -> Nome: %s, E-mail: %s";
    Scanner scanner = new Scanner(System.in);
    String[][] quartos = new String[10][4];
    int quantidadeAlunos = 0;

    System.out.println("Informe a quantidade de alunos");
    quantidadeAlunos = scanner.nextInt();

    for (int i = 0; i < quantidadeAlunos; ) {
        //número quarto
        System.out.println("Informe o número do quarto desejado: ");
        int numeroQuarto = scanner.nextInt();
        if (numeroQuarto >= 10 && quartos[numeroQuarto][0] != null) {
            System.out.println("Quarto oculpado ou número inválido");
            for (int r = 0; r < 10; r++)
                System.out.println(String.format(relatorio, r, quartos[r][2], quartos[r][3]));
            continue;
        }
        //aluguel
        quartos[i][1] = String.valueOf(50 * i + 1);
        //nome
        System.out.println("Digite o nome: ");
        quartos[i][2] = scanner.next();
        //e-mail
        System.out.println("Digite o e-mail: ");
        quartos[i][3] = scanner.next();
        i++;
    }

    for (int r = 0; r < 10; r++) {
        System.out.println(String.format(relatorio, r, quartos[r][2], quartos[r][3]));
    }
}

}