Passagem de parametros?

8 respostas
S

Olá pessoal

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.

public static void main (String args[])
       {
       	double total;

        try
           {
            int q1 = Integer.parseInt (args[0]);
            double v1 = Double.parseDouble (args[1]);

            int q2 = Integer.parseInt (args[2]);
            double v2 = Double.parseDouble (args[3]);

            int q3 = Integer.parseInt (args[4]);
            double v3 = Double.parseDouble (args[5]);

            total = ((q1 * v1) + (q2 * v2) + (q3 * v3));

            JOptionPane.showMessageDialog (null, "O valor total da compra é " + total);
           }
        catch (ArrayIndexOutOfBoundsException e)
           {
            JOptionPane.showMessageDialog (null, "Numeros de argumentos invalidos ! ");
           }
       }
   }

8 Respostas

M

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

Comigo funcionou o seu código:

import javax.swing.*;

class Paramm
{

public static void main (String args[]) 
       { 
          double total; 

        try 
           { 
            int q1 = Integer.parseInt (args[0]); 
            double v1 = Double.parseDouble (args[1]); 

            int q2 = Integer.parseInt (args[2]); 
            double v2 = Double.parseDouble (args[3]); 

            int q3 = Integer.parseInt (args[4]); 
            double v3 = Double.parseDouble (args[5]); 

            total = ((q1 * v1) + (q2 * v2) + (q3 * v3)); 

            JOptionPane.showMessageDialog (null, "O valor total da compra é " + total); 
           } 
        catch (ArrayIndexOutOfBoundsException e) 
           { 
            JOptionPane.showMessageDialog (null, "Numeros de argumentos invalidos ! "); 
           } 
       } 
}

java Paramm 3 4 5 6 7 8

Resultou:
O valor total da compra é 98.0

M

um palpite:
vc passou os parametros corretamente ao chamar a sua aplicação?

S

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

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

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

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

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.

Criado 25 de junho de 2005
Ultima resposta 26 de jun. de 2005
Respostas 8
Participantes 5