[ERRO] - Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 0at PrimeiraClasse.main(PrimeiraClasse.java:4)
19/11/2018
0
Olá, estou bem no início de Java e estou tentando compilar esse cod. pelo CMD que a professora passou e está dando esse erro do título. Já compilei outros simples tipo "Olá Mundo" e deu certo. Se puderem me mostrar o erro, agradeço. Segue o código:
class PrimeiraClasse{
public static void main(String args[]){
System.out.println("Argumento 1: " +args[0]);
System.out.println("Argumento 2: " +args[1]);
}
}
class PrimeiraClasse{
public static void main(String args[]){
System.out.println("Argumento 1: " +args[0]);
System.out.println("Argumento 2: " +args[1]);
}
}
Paula Christina
Curtir tópico
+ 0
Responder
Posts
19/11/2018
Jothaz
Os args são "valores" (parâmetros) passados na linha de execução da classe tipo:
Só que a mesma classe poder ser chamada sem os valores:
O erro ocorre justamente por isto, você esta chamando uma classe que pelo código devia receber dois valores:
Sem passar os valores, para seu código funcionar use:
Para ficar dinâmico que funcione passando os valores ou não podemos usar um for para executar um loop nos valores dos valores e imprimí-los, caso estes valores seja não sejam passado o loop não será executado e não retornará erro.
Segue o exemplo:
Assim você poderá chamar sua classe:
Saída:
Ou
Saída:
Que irá funcionar.
Espero que a explicação tenha ficada clara.
java PrimeiraClasse valor1 valor2 valor3
Só que a mesma classe poder ser chamada sem os valores:
java PrimeiraClasse
O erro ocorre justamente por isto, você esta chamando uma classe que pelo código devia receber dois valores:
System.out.println("Argumento 1: " +args[0]); System.out.println("Argumento 2: " +args[1]);
Sem passar os valores, para seu código funcionar use:
java PrimeiraClasse valor1 valor2
Para ficar dinâmico que funcione passando os valores ou não podemos usar um for para executar um loop nos valores dos valores e imprimí-los, caso estes valores seja não sejam passado o loop não será executado e não retornará erro.
Segue o exemplo:
public class PrimeiraClasse{ public static void main(String[] args){ System.out.println("inicio"); for(int i = 0; i < args.length; i++) { System.out.println("Argumento (" + i + ") = " + args[i]); } System.out.println("fim"); } }
Assim você poderá chamar sua classe:
java PrimeiraClasse
Saída:
inicio fim
Ou
java PrimeiraClasse valor1 valor2 valor3
Saída:
inicio Argumento (0) = 1 Argumento (1) = 2 Argumento (2) = 3 fim
Que irá funcionar.
Espero que a explicação tenha ficada clara.
Responder
Clique aqui para fazer login e interagir na Comunidade :)