Boucle C++

Résolu/Fermé
didy_gwatinik Messages postés 352 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 30 mars 2010 - 21 nov. 2007 à 10:37
didy_gwatinik Messages postés 352 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 30 mars 2010 - 21 nov. 2007 à 10:54
Bonjour,
Je suis en train de faire une "calculatrice" sous DEV C++ et j'ai un probleme avec ma boucle while, le choix de l'utilisteur n'est pas pris en compte quand le programme demande voulez-vous recommencer? Si quelqu'ub pouvait m'aider, ça serait très gentil. Voilà mon code :
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main ( )
{
int nombre1, nombre2, recommencer=1,choix;
while((recommencer == 1) && (recommencer ==2));
{
switch (recommencer)
{
case 1 :
{
printf("Bonjour!\nBienvenue dans ma calculatrice. \nQue voulez-vous faire?\n \t1 Addition\n\t2 Soustraction\n\t3 Multiplication\n\t4Division\n\t5 Sortir\n");
scanf ("%d", &choix);
case 2 :
{
if ((choix !=5) && (choix<5))
{
printf("Veuillez saisir vos nombres\n");
scanf("%d", &nombre1);
scanf("%d", &nombre2);
}
switch (choix)
{
case 1:
{
printf("%d + %d = %d\n", nombre1, nombre2, nombre1+nombre2);
}
break;
case 2 :
{
printf("%d - %d = %d\n", nombre1, nombre2, nombre1-nombre2);
}
break;
case 3 :
{
printf("%d * %d = %d\n", nombre1, nombre2, nombre1*nombre2);
}
break;
case 4 :
{
printf("%d / %d = %d\n", nombre1, nombre2, nombre1 / nombre2);
}
break;
case 5 :
{
printf("Au revoir\n");
}
break;
default :
printf("Erreur de saisie\n");
}
}
break;
}
break;
default :
printf("Au revoir");
}
printf ("Vous avez le choix :\n\t1/ Recommencer avec les memes nombres\n\t2/ Recommencer en choississant de nouveaux nombres\n\t Appuyez sur une autre toouche pour Sortir\n\t");
scanf("%d", &recommencer);
system ("cls");
}
getch ( );
return 0;
}

2 réponses

Bonjour,
while((recommencer == 1) && (recommencer ==2));
Cette condition n'est jamais vérifiée : recommencer ne vaut pas à la fois 1 et 2 !
Donc la boucle n'est jamais effectuée.
Mais comme ta boucle se limite au ";" qu'il y a à la fin de la ligne, tu exécutes le bloc suivant mais il ne fait pas partie de la boucle et n'a aucune raison de recommencer...

remplace && par || et enlève le point virgule, ça devrait aller mieux.
0
didy_gwatinik Messages postés 352 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 30 mars 2010 80
21 nov. 2007 à 10:54
En effet, ca fonctionne! Merci beaucoup le pere. Ca été très rapide! Encore Merci!!!!!!!!!
0