AJUDAAA! Programa que le pelo teclado um valor

9 respostas
furacao123

eu estou tentando fazer um programa que leia pelo teclado o valor em dolar, converta e imprima o mesmo num valor em reais

exemplo:

public class Converte

{

public static void main(String[] args)

{

float dolar = Float.parseFloat(args[0]);

float real = (dolar*3.50F);

System.out.println("O valor " +dolar + " em real eh: " +real);

}

}

mas sempre que tento executar da o seguinte erro

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0
at Exec1.main(Exec1.java:8)
Java Result: 1

Alguem saberia me explicar pq???

9 Respostas

ivandasilva

Amigão, ArrayIndexOutOfBoundsException quer dizer que você estourou o seu vetor, por um acaso na hora de compilar o seu programa, você passou mais de um parâmetro, por exemplo:

java Converte 10 5

OBS: Para inserir códigos no fórum use as tags disponibilizadas pelo mesmo :wink:

Abraços

rafaelglauber

Oi,

Você executa seu programa passando algum parametro para ele? Se não tá explicado, você tá tentando acessar um indice de um vetor que não tem elemento algum.

float dolar = Float.parseFloat(args[0]);

isso não é ler do teclado, neste momento seu programa tá esperando que quando ele for chamado o primeiro parametro será uma String contendo o valor de um float válido.

O que você quer é:

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Informe um valor: "); String texto = buf.readLine(); float dolar = Float.parseFloat(texto);

Ironlynx

…e não use float!!!Use double, e, no caso de realmente lidar com unidades monetárias, BigDecimal( http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html ). :wink:

furacao123

certo mas e se eu fizesse…

public class Converte

{

public static void main(String[] args)

{

System.out.println(args[0]);

float dolar = Float.parseFloat(args[0]);

float real = (dolar*3.50F);

System.out.println("O valor " +dolar + " em real eh: " +real);

}

}

esse print nao iria esperar ser digitado algum valor e atribuir ao vetor indice 0 ??

rafaelglauber

furacao123:
certo mas e se eu fizesse…

public class Converte

{

public static void main(String[] args)

{

System.out.println(args[0]);

float dolar = Float.parseFloat(args[0]);

float real = (dolar*3.50F);

System.out.println("O valor " +dolar + " em real eh: " +real);

}

}

esse print nao iria esperar ser digitado algum valor e atribuir ao vetor indice 0 ??

não, como o nome diz “print” se fosse para ler seria “read”

Rodrigo_Rocha_de_Mor

furacao123:
certo mas e se eu fizesse…

public class Converte

{

public static void main(String[] args)

{

System.out.println(args[0]);

float dolar = Float.parseFloat(args[0]);

float real = (dolar*3.50F);

System.out.println("O valor " +dolar + " em real eh: " +real);

}

}

esse print nao iria esperar ser digitado algum valor e atribuir ao vetor indice 0 ??

Fii vc está confundindo as coisas…
args[] armazena valores que são passados em linha de comando no momento em que se inicia uma aplicação em Java.
Por exemplo no Windows:
No prompt do vc executa da seguinte forma, claro, na pasta onde estiver seu Converte.class

C:\java Converte teste

Onde teste será o valor do seu args[0]
Como é um vetor, pode-se ainda passar mais de um valor!
Deu pra entender ± né?!

[]'s

Rodrigo_Rocha_de_Mor

Se vc quer ler um valor pelo teclado, aí existem outras formas, como por exemplo java.util.Scanner!

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html

[]'s

furacao123

Ok intendi vlw pela ajuda…to começando em java agora programo em php…por isso essas duvidas toscas…UAHHUA

mas intendi vlw pela ajuda

GALACTUS

Zanden hauf as diz hutmanshuter as:

# BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));    
# System.out.print("Informe um valor: ");  
# String texto = buf.readLine();    
# float dolar = Float.parseFloat(texto);

Shernering has put as.
Guten Tag.

Criado 19 de setembro de 2008
Ultima resposta 20 de set. de 2008
Respostas 9
Participantes 6