Do.. while || while ?
Résolu
MickaToast
Messages postés
142
Date d'inscription
Statut
Membre
Dernière intervention
-
MickaToast Messages postés 142 Date d'inscription Statut Membre Dernière intervention -
MickaToast Messages postés 142 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'apprend le C en ce moment et je me suis demandé c'était quoi le mieux dans mon programme? Une boucle do.. while ou alors une boucle while?
En gros je sais faire les deux boucles, mais le do.. while me permet de pas initialiser une valeur aux variables (au début du code (int ..))
Merci d'avance pour vos réponses!
int nombreChoisi, nombreMystere, tentative, jeu; srand(time(NULL)); //Init de la fonction rand do { nombreMystere = (rand() % 99) + 1; tentative = 0; do { do { printf("Votre estimation entre 1 et 100: "); scanf("%d", &nombreChoisi); } while(nombreChoisi <= 0 || nombreChoisi >= 100); //Sécurité du scanf if(nombreChoisi < nombreMystere) printf("C'est plus!\n\n"); else if(nombreChoisi > nombreMystere) printf("C'est moins!\n\n"); tentative++; } while(nombreChoisi != nombreMystere); //Execution tant que le nombre n'est pas le bon (do car nombreChoisi par initialisé) printf("Bravo, vous avez gagné en %d tentatives!\n", tentative); do { printf("Aimeriez vous rejouer? (Oui=1 ; Non=0): "); scanf("%d", &jeu); } while(jeu != 0 && jeu != 1); //Sécurité du scanf } while(jeu); return 0;
En gros je sais faire les deux boucles, mais le do.. while me permet de pas initialiser une valeur aux variables (au début du code (int ..))
Merci d'avance pour vos réponses!
A voir également:
- Do.. while || while ?
- My people do - Télécharger - Organisation
- Do not turn off target traduction - Forum Samsung
- Samsung galaxy tab S Bloquer Downloading do not turn off target - Forum Téléphones & tablettes Android
- What you do what you say - Forum Audio
- Fichier .do ✓ - Forum PDF
1 réponse
Bonjour,
Dans ton cas d'utilisation, ces boucles do/while semblent bien utilisés.
De manière générale, ces deux systèmes de boucles sont de toute façon interchangeables.
Et :
Remarque : ton code pourrait se simplifier en créant une fonction.
Ce qui donnerait :
Dans ton cas d'utilisation, ces boucles do/while semblent bien utilisés.
De manière générale, ces deux systèmes de boucles sont de toute façon interchangeables.
do { instructions } while (condition);→
instructions; while (condition) { instructions; }
Et :
while (condition) { instructions; }→
if (condition) { do { instructions; } while (condition); }
Remarque : ton code pourrait se simplifier en créant une fonction.
int readInt(char* msg, int min, int max) { int tmp; /*if (min>max) { tmp = min; min = max; max = tmp; }*/ do { printf(msg); scanf("%d", &tmp); } while(tmp < min || tmp > max); return tmp; }
Ce qui donnerait :
nombreChoisi = readInt("Votre estimation entre 1 et 100: ", 1, 100);
jeu = readInt("Aimeriez vous rejouer? (Oui=1 ; Non=0): ", 0, 1);
MickaToast
Messages postés
142
Date d'inscription
Statut
Membre
Dernière intervention
24
Merci pour ta réponse, et merci pour l'astuce de la fonction :)