Programa de Somatoria

4 respostas
A

Estou aprendendo Java e testando programinhas basicos de soma como o abaixo:

package soma;

public class Main {

public static void main(String[] args) {

int valor1, valor2, soma;

System.out.println(Entre com valor1:);

System.out.println(Entre com valor2:);

valor1=Integer.parseInt(args[0]); //converte String para Int

valor2=Integer.parseInt (args[0]);

soma = valor1 + valor2;

System.out.println(valor da soma:+soma);

}

}

So que ele nao executa e me da o seguinte erro:

run:

Entre com valor1:

Entre com valor2:

Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 0

at soma.Main.main(Main.java:7)

Java Result: 1

CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Alguem sabe o que e?

Agradeço mais uma vez.

Abçs

4 Respostas

Trebloc

A variável args indica parâmetros que são passados para o programa:

javac Main.java
java Main 25 33

Nesse caso, args[0] será "25" e args[1] será "33".

No seu programa, você pode tanto executá-lo assim, passando dois números por parâmetro:

package soma; 
public class Main { 
    public static void main(String[] args) {
        if (args.length != 2) {
            System.out.println("Erro, precisa de 2 números passados por parâmetro!");
            System.exit(0); // encerra o programa
        }

        int valor1, valor2, soma; 
        valor1=Integer.parseInt(args[0]); //converte String para Int 
        valor2=Integer.parseInt (args[1]); 
        soma = valor1 + valor2; 
        System.out.println("valor da soma:"+soma); 
    } 
}

E então rodar o programa assim:

java Main 5 2

Que no caso mostraria a soma de 5+2, ou então passar a ler do teclado, ignorando os argumentos de linha de comando:

package soma; 
import java.util.Scanner;

public class Main { 
    public static void main(String[] args) { 
        int valor1, valor2, soma; 
        Scanner teclado = new Scanner(System.in);
        System.out.println("Entre com valor1:"); 
        valor1=Integer.parseInt(teclado.nextLine()); //converte String para Int 
        System.out.println("Entre com valor2:"); 
        valor2=Integer.parseInt (teclado.nextLine()); 
        soma = valor1 + valor2; 
        System.out.println("valor da soma:"+soma); 
        teclado.close();
    } 
}
rogelgarcia

ArrayIndexOutOfBoundsException acontece quando você tenta utilizar a posição de um array que nao existe…

No seu caso a posição 0 não existe (o array está vazio)

Magno_LC

n vi muito bem os códigos q o amigo ae em cima postou mas se quiser settar o args, vc pode ir em :

Run configurations > [escolha o arquivo com o main] > guia (x)=arguments > campo program arguments

ai vc pode jogar valores para cada posição do seu args, separando apenas pelo espaço

vlw!

M

codigo de forma simplificada

public static void main(String[] args) {

		Scanner leitor = new Scanner(System.in);

		int valor1, valor2;

		System.out.print("Digite o primeiro número: ");
		valor1 = leitor.nextInt();
		System.out.print("Digite o segundo número: ");
		valor2 = leitor.nextInt();
		System.out.print("Valor da soma é: " + (valor1 + valor2));
	}
}
Criado 3 de março de 2010
Ultima resposta 4 de mar. de 2010
Respostas 4
Participantes 5