Mon programme s'exécute à partir de la ligne de commande et demande à l'utilisateur d'entrer des booléens (oui ou non) et des entiers (nombres sans décimales). Pour cela, j'ai deux méthodes à vérifier pour s'assurer que l'utilisateur fait une entrée valide, par exemple si l'utilisateur est demandé quelle température il est en dehors de "fromage" n'est pas une réponse valide. Que doit-il se passer si l'utilisateur donne une entrée invalide? Faut-il répéter la même invite? Doit-il rappeler à l'utilisateur le type d'entrée requis?
Par exemple:
Please enter your height in cm: xyz
Please enter an integer.
Please enter your height in cm: 180
Do you wear glasses: 5
Please enter y/n.
Do you wear glasses: blah
Please enter y/n.
Do you wear glasses: y
De plus, est-il clair si un booléen est censé dire à l'utilisateur de répondre en utilisant y/n?
Puisqu'il s'agit d'une CLI, je ne pense pas que vous ayez besoin de trop expliquer. Je suppose que l'utilisateur final est un peu averti de la technologie, il devrait donc être utilisé pour fournir des informations comme vous le décrivez. Ma seule recommandation est d'ajouter un indice à la fin. c'est à dire
Do you wear glasses (y/n):
Je suis d'accord avec Paul. Si vous avez choisi CLI, je suppose que vos utilisateurs comprennent ce qui doit être saisi.
Mais des erreurs manuelles ou de faute de frappe se produiront. Les humains font des erreurs. Même pour les entrées booléennes, "oui" peut ne pas être accepté à la place de "y". Ce scénario peut également s'étendre aux nombres entiers, où l'utilisateur peut taper une virgule au lieu d'un point.
L'interface utilisateur doit permettre à l'utilisateur de gérer efficacement ces erreurs. Le meilleur moyen est d'informer l'utilisateur de ces trois points
Please enter your height in cm (Integers only. Ex: 164): xyz
Sorry, xyz is an invalid input. Please enter only an integer. Please enter your height in cm (Integers only. Ex: 164): 180
Do you wear glasses(y/n): 5
Sorry, 5 is an invalid input. Please enter only y/n. Do you wear glasses(y/n): y
Je suggère d'inclure (o/n) dans la question elle-même, comme ceci:
Do you wear glasses? (y/n):
Si l'utilisateur entre une mauvaise réponse, affichez à nouveau la même question. Je pense que cela va de soi:
Do you wear glasses? (y/n):5
Do you wear glasses? (y/n):
..
What's your height? (cm):172