Validation du type de données saisie.
Fermé
Leilu
-
Modifié par KX le 16/11/2016 à 18:29
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 nov. 2016 à 19:28
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 nov. 2016 à 19:28
A voir également:
- Validation du type de données saisie.
- Ethernet n'a pas de configuration ip valide - Guide
- Excel validation des données liste - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Reinstaller windows sans perte de données - Guide
- Commande en cours de validation fnac - Forum Consommation & Internet
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
16 nov. 2016 à 19:28
16 nov. 2016 à 19:28
Bonjour,
En Java 8 il est très facile de faire ce genre de tests avec une petite méthode utilitaire, exemple :
En Java 8 il est très facile de faire ce genre de tests avec une petite méthode utilitaire, exemple :
// import java.util.function.*; public static <E> E getAndCheck(String msg, Supplier<E> getter, Function<E, Boolean> condition) { E result = null; do { System.out.println(msg); try { result = getter.get(); } catch (RuntimeException e) { } } while (result == null || !condition.apply(result)); return result; }
// import java.util.Scanner; Scanner sc = new Scanner(System.in); client.sexe = getAndCheck( "Quel est votre sexe ? (h/f)", sc::nextLine, r -> r.equals("h") || r.equals("f")); client.age = getAndCheck( "Quel est votre âge ?", () -> Integer.parseInt(sc.nextLine()), r -> r > 0 && r <= 110); client.valeurAchat = getAndCheck( "Quelle est la valeur d'achat de votre véhicule ?", () -> Double.parseDouble(sc.nextLine()), r -> r > 0); client.anneeFabrication = getAndCheck( "Quelle est l'année de fabrication de votre véhicule ?", () -> Integer.parseInt(sc.nextLine()), r -> r > 0 && r <= client.anneeEnCours); client.reclamationsPrecedentes = getAndCheck( "Avez-vous fait des réclamations au cours des 6 dernières années ? (oui/non)", sc::nextLine, r -> r.equals("oui") || r.equals("non"));