Programa de Somatoria

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

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:

[code]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); 
} 

} [/code]

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:

[code]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();
}
} [/code]

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)

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!

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));
	}
}