Conditions pour n'accepter que les floats

Résolu/Fermé
charly2203 Messages postés 230 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 23 septembre 2014 - 18 nov. 2012 à 23:25
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
18 nov. 2012 à 23:35
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