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)
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]