Boucle while ne veut pas bouclé
Résolu
strato-boy
Messages postés
831
Statut
Membre
-
feadin91 Messages postés 282 Statut Membre -
feadin91 Messages postés 282 Statut Membre -
hello les codeurs! dites, j'ai une boucle qui me pose probleme ... elle veut pas bouclé même quand on demande de bouclé ... tout fonctionne bien sauf le retour au début de la boucle.
et pas moyen de trouvé le problème ... quelqu'un pour m'aider? voila la fautive :
normalement la boucle devrait reprendre si l'utilisateur rentre o ... mais sa veut pas ... merci a tout ceux qui pourront m'aidé
--
quand on voit se que font les pigeons on est heureux que les vaches n'aient pas d'ailes !
et pas moyen de trouvé le problème ... quelqu'un pour m'aider? voila la fautive :
while(1)
{
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("\n********************\nLE NOMBRE MYSTERE\n********************\n");
printf("trouvez le nombre mystere ! (entre 1 et 100) \n");
do
{
printf("entrez votre nombre !\n");
scanf("%d", &choix);
if (choix < nombreMystere)
{
printf("\n plus haut ! plus haut ! \n");
counter++;
}
else if (choix > nombreMystere)
{
printf("\nPlus bas ! Plus bas ! \n");
counter++;
}
else
{
counter++;
printf("\n\tBingo !! t'as gagner le gros lot ! felicitation!\n il t'auras fallu %d coups pour trouver.\n", counter);
}
}while (choix != nombreMystere);
puts("Autre partie ? ( o ou n ) ?");
do
{
ch = getchar();
} while (ch != 'n' && ch != 'o');
if (ch == 'n' )
break;
}
normalement la boucle devrait reprendre si l'utilisateur rentre o ... mais sa veut pas ... merci a tout ceux qui pourront m'aidé
--
quand on voit se que font les pigeons on est heureux que les vaches n'aient pas d'ailes !
1 réponse
-
le break a la fin tu a essayer de le mettre entre accolades
{break;}
juste pour qu'il sache qu'il appartien au if et qu'il ne s'execute pas d'office.
a ce que j'ai compris le pb c'est le "while(1)" qui fonctionne jamais ?-
-
-
-
if (ch == 'n' )
break;
sa ne marchait pas, mais si tu l'avais mise comme sa.
if (ch == 'n' ) break;
sur la même ligne sa devrai marcher
je croi que le compilateur a compri
1- si (truc est vrai) ben il y a rien donc fou rien dans les deux cas
2 -break; arrête tout indépendamment du si
et avec les accolades il comprend que c'est la suite du if -
L'astuce, c'est que dans différents langages de programmation (le C# par exemple) l'instruction suivant un If est forcément rattachée à elle si il n'y a pas d'accolades... Uniquement si une seule instruction bien entendu.
if (condition) break;
aurait été perçue de la même façon queif (condition) { break; }
Enfin bref... Bienvenue dans l'aspect strict du langage C ;)
-