Skip to content

Exercices de la semaine 4b : validation des données

Les données saisies avec Console.ReadLine() sont toujours des chaînes de caractères. Validez les entrées avant de les utiliser.

Consignes générales

  • Déclarer les variables avant de les utiliser avec TryParse.
  • Utiliser int.TryParse pour les nombres entiers.
  • Utiliser double.TryParse pour les nombres réels.
  • Utiliser if, else if et else pour valider les chaînes et les règles de valeur.
  • Afficher un message clair lorsque la donnée est invalide.

1. Valider un âge

Demander l'âge de l'utilisateur.

  • Si l'entrée n'est pas un entier, afficher un message d'erreur.
  • Si l'âge est négatif, afficher un message d'erreur.
  • Sinon, afficher l'âge accepté.

Ne pas redemander la valeur dans cet exercice.

2. Valider un prix

Demander le prix d'un article.

  • Utiliser double.TryParse.
  • Refuser les valeurs négatives.
  • Afficher le prix accepté lorsqu'il est valide.

3. Valider un choix de menu

Demander à l'utilisateur de choisir une option parmi les suivantes :

  1. Afficher le profil
  2. Modifier le profil
  3. Quitter

Utiliser if, else if et else pour afficher l'action correspondant au choix. Afficher un message d'erreur si l'utilisateur entre autre chose.

4. Redemander une quantité valide

Demander une quantité entière positive ou nulle.

  • Tant que la saisie n'est pas valide, afficher un message et redemander la quantité.
  • Utiliser une boucle do while ou while.
  • Afficher la quantité acceptée à la fin.

5. Fail fast et early exit

Écrire un programme top-level qui demande un nom de produit et un prix.

  • Si le nom est vide ou composé uniquement d'espaces, afficher un message et quitter immédiatement avec return.
  • Si le prix n'est pas un nombre réel, afficher un message et quitter immédiatement avec return.
  • Si le prix est négatif, afficher un message et quitter immédiatement avec return.
  • Sinon, afficher le produit et son prix.

Ne pas utiliser de fonction et ne pas imbriquer les validations dans des blocs if/else.