1
resposta

Problemas com a execução do código

Olá Alureiros de plantão. Estou iniciando meus estudos na linguagem Java e me deparei com um problema que não estou conseguindo resolver, que tem a ver com declaração de argumentos. A seguinte mensagem está aparecendo quando executo o programa:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 0 at Calculadora.main(Calculadora.java:5)

Segue abaixo o meu código de uma calculadora simples:

public class Calculadora {

    public static void main(String[] args) {
        int x = Integer.parseInt(args[1]);
        int y = Integer.parseInt(args[2]);

        if (args[0].equals("somar")) {
            sum(x, y);
        } else if (args[0].equals("subtrair")) {
            minus(x, y);
        } else if (args[0].equals("multiplicar")) {
            multiplier(x, y);
        } else if (args[0].equals("dividir")) {
            divide(x, y);
        } else {
            System.out.println("Escreve direito animal");
        }
    }
    static void sum(int x, int y) {

        System.out.println("Isso ai deu o seguinte valor meu truta:" +  (x + y));
    }

    static void minus(int x, int y) {

        System.out.println("Isso ai deu o seguinte valor meu truta:" + (x - y));
    }

    static void multiplier(int x, int y) {
        System.out.println("Isso ai deu o seguinte valor meu truta:" + (x * y));
    }

    static void divide(int x, int y) {
        System.out.println("Isso ai deu o seguinte valor meu truta:" + (x / y));
    }
}
1 resposta

Não sei se vou conseguir ajudar, já faz algum tempo que não programo em Java, mas testei seu código.

Bom, quando a gente está usando o método main para entrada de dados, a gente precisa passar isso na hora de compilar. Por exemplo:

// Para somar 1 e 2
javac Calculadora.java
java Calculadora somar 1 2
Isso ai deu o seguinte valor meu truta: 3
// Para subtrair 2 de 1 
javac Calculadora.java
java Calculadora subtrair 1 2
Isso ai deu o seguinte valor meu truta: -1

Se só rodar o comando de execução, ele vai lançar a exceção apontada por você, o ArrayIndexOutOfBoundsException; já que ele não encontra argumentos para serem passados para o array e este fica com o tamanho igual a zero.

Caso, o erro ainda persista, vou pedir a você que abra essa pergunta novamente, mas no tópico de Java, pois você postou, possivelmente por engano, sua pergunta no tópico de JavaScript.

Aí lá tem mais chance de alguém que usa Java com mais frequência, ver, ler sua dúvida e, assim, poder te ajudar. ;-)

Link para saber e conhecer mais:

Espero ter ajudado de alguma forma!

Bons estudos! =D