Problème de boucle do..while
Je sors de ma boucle alors que les conditions ne sont pas remplies, quelqu'un peut m'aider : voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
int ArretProgramme()
{
/* Fonction renvoyant 0 ou 1
0 traduit o et 1 traduit n
0=On quitte le programme
1=On reste dans le programe
*/
int i;
int car;
printf("\nConfirmez-vous vraiment l'arr%ct du programme : (O)OUI et (N)NON :",136);
car=getche(); /*Recupération de la valeur saisie sur écran */
if ((car=='o') || (car=='O')) /* Si on a tapé o ou O donc on quitte */
{
i=1;
}
else /*Sinon n ou autre valeur on ne quitte pas et on renvoie une erreur si ce n'etait n */
{
if ((car=='N') || (car=='n'))
{
i=0;
}
else
{
printf("Retour au menu principal, car mauvais choix.\n");
i=0;
}
}
/*printf("Nombre retourné :%d\n",i);*/
return i; /*Renvoi de la valeur saisie */
}
int main(int argc, char *argv[])
{
int iOption;
int iArret;
/*Appel de l'affichage du menu principal*/
do
{
iArret=1;
AffichageMenu();
/*iOption=ChoixOption();*/
printf("Veuillez-S%cl%ctionner une option 1,2,3,4 : ",130,130);
iOption=getche();
/*printf("Valeur de l'option : %c\n",iOption);*/
switch (iOption)
{
case 49:
printf("\nModule de saisie\n");
/*iOption=*/getche();
continue;
case 50:printf("\nModule de tri\n");getche();break;
case 51:printf("\nModule de suppression\n");getche();break;
case 52 :iArret=ArretProgramme();break;
default : iOption=getche();printf("\nValeur par defaut\n");continue;
}
}while(iArret != 1 && iOption != 53); /* tant que iArret(flag de la fonction Arret programme ne vaut pas 1 et iOption choix menu
différent de 4 on affiche le menu principal */
printf("\nValeur de iOption : %d\n",iOption);
return 0;
} |