Boucles d'entrées/sorties

Objectifs

  • Savoir utiliser les entrées/sorties dans une boucle ;

  • Savoir demander des informations jusqu'à obtenir une réponse valide.

Mise en situation

En programmation il y a un adage célèbre qui dit : « Never trust user input », ce qui veut dire « ne jamais faire confiance à ce que l'utilisateur saisit ». En effet lorsque l'on attend une information de la part d'un utilisateur, il faut toujours s'assurer que l'information entrée est bien celle que l'on souhaite, par exemple qu'elle a le bon format. Si l'on ne fait pas cette vérification, la saisie d'une mauvaise information, comme par exemple une date au lieu d'un prénom, risque de faire planter notre programme. Il est donc nécessaire d'implémenter un mécanisme de vérification, qui se répète tant que la saisie n'est pas correcte.

MéthodeItérations

Les structures itératives permettent d'effectuer des boucles pour répéter des instructions, soit jusqu'à un certain nombre de fois, soit jusqu'à ce qu'une condition soit remplie. Les mots clés for, while et do while permettent ces types de boucles.

Entrées et itérations conditionnelles

Les entrées sont particulièrement sujettes à des erreurs de la part de l'utilisateur. On ne peut pas savoir avec certitude si sa réponse va correspondre à ce qui est attendu. Dans le cas où la réponse est trop courte, trop longue, n'est pas au bon format (pour un e-mail ou un téléphone par exemple), etc. il faut souvent redemander une information, et ce potentiellement plusieurs fois.

Les structures itératives utilisant une condition sont alors particulièrement adaptées.

Prompt en boucle

Pour demander une information jusqu'à ce que celle-ci soit correcte, on peut tester la ou les conditions après le prompt ou l'input, et répéter la demande tant que les critères ne sont pas remplis. Pour cette usage, la boucle while est indiquée.

ExempleVérifier la taille de la réponse

1
/** JavaScript: boucle tant que la réponse fait moins de 12 caractères */
2
let password = prompt('Entrez un mot de passe valide (12 caractères minimum)')
3
4
while (password.length < 12) {
5
  password = prompt('Mot de passe trop court. Réessayez')
6
}
7
8
console.log('Mot de passe accepté')
1
"""Python: boucle tant que la réponse fait moins de 12 caractères."""
2
password = input('Entrez un mot de passe valide (12 caractères minimum)\n')
3
4
while len(password) < 12:
5
  password = input('Mot de passe trop court. Réessayez\n')
6
7
print('Mot de passe accepté')

À retenir

Combiner les boucles avec la lectures d'entrées est un bon moyen de réitérer une demande en vérifiant que la réponse est correcte.