Estou aprendendo programação pelo básico ainda, não consegui achar onde errei nesse código, quando executo aparece no final essa mensagem:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at OláMundo.principal.executaAteFim(principal.java:44)
at OláMundo.principal.main(principal.java:21)
//
//
package OláMundo;
public class principal {
//args array de Strings que são passadas
// pra execução do java pelo terminal
// exemplo:
// java Principal arg1 arg2
public static void main(String[] args) {
//imprimir
System.out.println(args.length);
if(args.length == 1) {
System.out.println("Olá , "+args[0]);
} else if (args.length == 0){
System.out.println("Você não passou nenhum argumento.");
System.out.println("Passe algum argumento");
} else {
System.out.println("Mais de um argumento");
}
int x = executaAteFim(args);
System.out.println(x);
imprimeComFor(args);
}
private static void imprimeComFor(String[] args) {
//Tamanho do array
// declaração ; condição de parada; incremento
// condição de parada indice menor que o tamanho do array
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
private static int executaAteFim(String[] args) {
int index = 0;
String nome = "";
//execute enquanto condição de parada
//enquanto for diferente de FIM
while (!nome.equals("FIM")) {
nome = args [index++];
System.out.println(nome);
}
return index;
}
}