Entrada de dados via linha comando

1 resposta
C

Olá pessoal , sou inciante en Java e estou tendo dificuldade pra executar um programa com entrada de dados via linha comando.No exemplo em baixo dar certo, na Classe Conta eu tenho que digitar o valor do kwh e o consumo, e ele me dar valor da conta, mas como eu faço prar entrar só com o consumo sem ter que precisar digitar o valor do kwh( não tem lógica) e ele dar o resutado esperado.

public class Eletropaulo   
{   
//estado   
private float kwh;   
private float consumo;   
  
//construtor   
public Eletropaulo()   
{   
     kwh=0.28789f;   
     consumo=1.00f;   
}   
  
public Eletropaulo(float kwh,float consumo)   
{   
     this.kwh=kwh;   
     this.consumo=consumo;   
}   
  
public float valorPagar()   
{   
     return kwh*consumo;   
}   
  
public void mostrarValor()   
{   
     System.out.println("Valor="+valorPagar());   
}   
  
}

=====================================

public class Conta   
{   
  
       public static void main(String [ ] args )   
{   
        
     float kwh=Float.parseFloat( args [0] );    
     float consumo=Float.parseFloat( args [1] );   
          
  
     Eletropaulo pagar=new Eletropaulo(consumo);   
     pagar.mostrarValor();   
        
}   
  
}

Tentei fazer assim: mas dar esse erro: Exception in threard “main” java.lang.ArrayIndexOutOfBoundsException:1 at Conta.mainConta.java:9

public class Eletropaulo   
{   
//estado   
private float kwh;   
private float consumo;   
  
//construtor   
public Eletropaulo()   
{   
     kwh=0.28789f;   
     consumo=1.00f;   
}   
  
public Eletropaulo(float consumo)   
{   
          this.consumo=consumo;   
}   
  
public float valorPagar()   
{   
     return kwh*consumo;   
}   
  
public void mostrarValor()   
{   
     System.out.println("Valor="+valorPagar());   
}   
  
}
public class Conta   
{   
  
       public static void main(String [ ] args )   
{   
        
   
     float consumo=Float.parseFloat( args [1] );   
          
  
     Eletropaulo pagar=new Eletropaulo(consumo);   
     pagar.mostrarValor();   
        
}   
  
}

1 Resposta

P

é que, na segunda classse Conta, quando voce faz a chamada
float consumo=Float.parseFloat( args [1] );
[Ref. Linha 9]

vc tem que usar como indice de args o valor [0]…lembre-se: agora vc informa apenas o consumo, antes vc informava (0) valor kwh e (1) o consumo…

abs, Philips

Criado 21 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 1
Participantes 2