Conditions pour n'accepter que les floats

Résolu
charly2203 Messages postés 247 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16760 Date d'inscription   Statut Modérateur Dernière intervention   - 18 nov. 2012 à 23:35
Bonjour,
Je bloque sur des entrées standars qui ne correspondent pas avec ce qui est demandé.

Je m'explique, je demande à l'utilisateur de taper un prix (float) au clavier. Mais si celui-ci tape une lettre par exemple, ca plante le programme.

Comment réitérrer la demande tant qu'il n'entre pas bien un float?

Merci d'avance


1 réponse

KX Messages postés 16760 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tout dépend comment tu fais pour entrer tes nombres, mais ça se fait facilement avec la classe Scanner :

private static final Scanner clavier = new Scanner(System.in);

public static float nextFloat()
{
	System.out.print("Float : ");
	if (clavier.hasNextFloat())
	{
		return clavier.nextFloat();
	}
	else
	{
		System.out.println(clavier.next()+" invalide");
		return nextFloat();
	}
}

public static void main(String[] args)
{
	System.out.println(nextFloat());
}
0