printf("Tapez un
nombre compris entre 1 et 5"); scanf("%d", &nombre); while (nombre < 1 || nombre > 5) {printf("Un nombre compris entre 1 et 5"); scanf("%d", &nombre);} |
Le problème de cette version est que
l'on est obligé de répéter le scanf ce qui
semble redondant |
nombre = 6; while (nombre < 1 || nombre > 5) {printf("Un nombre compris entre 1 et 5"); scanf("%d", &nombre);} |
Cette version résout le
problème du scanf redondant
mais force l'entrée dans la boucle par une initialisation
totalement artificielle de nombre |
do { instruction1; ... instructionx; } while (expressionBool); /* fin du do ... while */ |
do {printf("Un nombre compris entre 1 et 5"); scanf("%d", &nombre);} while (nombre < 1 || nombre > 5); /* fin du do ... while * |
Dans cette version, il n'y a pas redondance, il n'y a pas d'initialisation artificielle. Le do ... while est parfaitement adapté à ce genre de problème. |