Alguém pode me dizer porque não consigo passar os paramentros necessários neste código? O algorítimo vai direto para o catch o pior é que tenho outro código parecido, que funcionou ontem e também não deixa eu entrar com os parametros no args.
publicstaticvoidmain(Stringargs[]){doubletotal;try{intq1=Integer.parseInt(args[0]);doublev1=Double.parseDouble(args[1]);intq2=Integer.parseInt(args[2]);doublev2=Double.parseDouble(args[3]);intq3=Integer.parseInt(args[4]);doublev3=Double.parseDouble(args[5]);total=((q1*v1)+(q2*v2)+(q3*v3));JOptionPane.showMessageDialog(null,"O valor total da compra é "+total);}catch(ArrayIndexOutOfBoundsExceptione){JOptionPane.showMessageDialog(null,"Numeros de argumentos invalidos ! ");}}}
Na exceção lançada aparece a linha q ela estourou, diz pra gente qual é a linha de código q lançou a exception.
J
JavaDropsPJ
Comigo funcionou o seu código:
importjavax.swing.*;classParamm{publicstaticvoidmain(Stringargs[]){doubletotal;try{intq1=Integer.parseInt(args[0]);doublev1=Double.parseDouble(args[1]);intq2=Integer.parseInt(args[2]);doublev2=Double.parseDouble(args[3]);intq3=Integer.parseInt(args[4]);doublev3=Double.parseDouble(args[5]);total=((q1*v1)+(q2*v2)+(q3*v3));JOptionPane.showMessageDialog(null,"O valor total da compra é "+total);}catch(ArrayIndexOutOfBoundsExceptione){JOptionPane.showMessageDialog(null,"Numeros de argumentos invalidos ! ");}}}
java Paramm 3 4 5 6 7 8
Resultou:
O valor total da compra é 98.0
M
mmpauloPJ
um palpite:
vc passou os parametros corretamente ao chamar a sua aplicação?
S
SandroperiPJ
Então não a aparece a linha que dá o erro, veja como está na minha maquina:
eu digito:
java Exer2
e aparece:
Numeros de argumentos invalidos !
não tenho idéia do que pode ser …
R
renatobachPJ
java Exer2 ???
Nã não, o nome da classe é Paramm.
Como disse nosso amigo JavaDrops, digita ai
java Paramm 3 4 5 6 7 8
Vlw
J
JavaDropsPJ
Na verdade o erro dele está sendo não colocar os parametros.
A classe Paramm fui eu que inventei pq ele só tinha colocado o método.
Sandroperi: faça java Exer2 1 2 3 4 5 6
Se você não colocar os 6 números nessa linha vai dar erro sempre.
S
SandroperiPJ
Ok JavaDrops
Deu certo valeu.
será que não da pra fazer de forma que as entradas sejam agrupadas de 2 em dois parametros e a e mostrar mensamgem para o par ex:
entre com a quantidade e valor do primeiro produto.(enter)
entre com a quantidade e valor do segundo produto.(enter)
enten com a quantidade e valor do terceiro produto. (enter).
e a aparecer o valor total?
J
JavaDropsPJ
Se você estiver fazendo direto na linha de comando, sem swing, experimente esse código:
System.out.print("Entre com o valor do produto: ");
BufferedReader valor = new BufferedReader(new InputStreamReader(System.in));
String svalor = valor.readLine();
double dvalor = Double.parseDouble(svalor);
Tem que adaptar para o que você quer.