Exception in threard "main" java.lang.ArrayIndexOutOfBoundsException:1 at Conta.main<Conta.java:9>

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

F

Fala colega!

Você tem que mudar o código de args [1] para args [0] no método main da classe conta.
Isso porque o índice inicia no 0 para pegar o primeiro parâmetro digitado via linha de comando. Como você só digita um parâmetro no seu novo programa (antes eram dois, correto?) o segundo parâmetro, que é retornado pelo comando args[1] (lembre-se que array em java começa em “0”) não existe, o que causa essa exceção.

Boa sorte.

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