Estou fazendo um algoritmo pra uma atividade da faculdade mas está dando um erro o qual não consigo solucionar. O objetivo do exercício é entrar um valor que seria a dimensão do vetor e uma quantidade de nomes igual ao valor do vetor e, após isso, ter como saída os nomes na ordem contrária a que foi entrada.
O código que eu fiz foi esse:
import java.util.Scanner;
public class S05A12E2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n, i;
System.out.print("Digite a quantidade de nomes: ");
n = scan.nextInt();
String nomes[] = new String[n];
System.out.print("Digite os nomes: ");
for (i=0;i<n;i=i+1){
nomes = scan.nextLine();
}
i=n;
while(i>=0) {
System.out.print(nomes);
i=i-1;
}
}
}
o programa lê apenas n-1 nomes e dá erro logo após, com a mensagem:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at s05a12e2.S05A12E2.main(S05A12E2.java:28)
C:\Users\balce\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 5 segundos)
Se alguém souber o que eu fiz de errado, agradeço a atenção desde já! Segue os prints da tela: