Controle na Entrada de dados

Prezados amigos,

Como controlo a entrada de dados para os respectivos tipos.
Por exemplo como faço para controlar a entrada de dados de um determinado tipo float.
Em C temos funções especificas para conversão de tipos que possibilitam o controle na entrada, mas em Java?

import java.io.*;

public class entra2 {

public static void main(String args[ ])	{

	BufferedReader entrada;
    entrada = new BufferedReader (new InputStreamReader (System.in));

	String nome;
	int idade;
	float peso;

try{
	System.out.println("Qual o seu nome");
	nome = (entrada.readLine());

	System.out.println("Qual a sua idade");
	idade = Integer.parseInt (entrada.readLine());

                           //se for digitado uma palavra, nesta variavel float, teremos a mensagem de erro de leitura, mas como contralar a entrada?

	System.out.println("Qual o seu nome");
	peso = Float.parseFloat (entrada.readLine());

	System.out.println("Seu nome é" +nome);
	System.out.println("Você tem" +idade+"anos");
	System.out.println("você pesa" +peso+"quilos");


}catch(Exception e)
	{System.out.println("Erro de leitura");
	}

// porque aqui esta instrução não funciona?

System.out.println(“Você tem” +idade+“anos”);

}

}

Creio que a solução para a sua pergunta seja os blocos Try-catch
mas não entendi muito bem qual é a sua dúvida!

Esta instrução( System.out.println(“Você tem” +idade+“anos”); ) só funcionaria se estivesse num bloco finally

Exemplo:

try { //... código normal return; } catch (Exception e) { //... código que trata o erro } finally { /*código executado, mesmo levantando excessão*/ }

Porque você pergunta antes de pegar o peso qual o nome do usuário?

System.out.println("Qual o seu nome"); peso = Float.parseFloat (entrada.readLine());

Voce pode utilizar o Scanner para entrada de dados…

Scanner c = new Scanner(System.in);

int numero =0;
//Inteiro
numero = c.nextInt();

Mais facil ne??
:wink:

Prezados amigos,

Deixa eu me explicar melhor…

Se eu digitar uma letra numa variavel do tipo double, o programa da erro.

Como faço para controlar a digitação de numeros, ou seja, se o usuário digitar uma letra numa variavel double, da-se uma msg de erro e com uma estrutura de repetição qualquer, a entrada de dados seria novamente solicitada até que fosse digitado um numero.

PS De fato, errei o println em que peço o nome e armazeno o peso.
O correto seria: System.out.println(“Digite seu peso:”);

Obrigado

Só uma dica coloca seu código entre as TAGS code para que possamos visualizar melhor. Em C eu sei que existe um método chamado isNumber isAlguma coisa, pesquise para ver se não existe o mesmo em java…