Problème de boucle while
pyr
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
je voudrais savoir si quelqu'un voit pourquoi ma boucle ne fonctionne pas...
Voilà, lerci d'avance.
int main(){
int again,c,n,S[200][200];
again=0;
while (again=0){
c=0;
printf("\n Que voulez'vous faire?");
printf("\n Tapez 1 pour afficher un sapin non décoré et dont vous choisissez la taille.");
printf("\n Tapez 2 pour afficher un sapin non décoré et la taille est aléatoire.");
printf("\n Tapez 3 pour afficher un sapin décoré et dont vous choisissez la taille");
printf("\n Tapez 4 pour afficher un sapin décoré et la taille est aléatoire.");
printf("\n Tapez 5 pour quitter.");
printf("\n\n\t");
scanf("%d",&c);
printf("\n");
switch(c){
case 1: {printf("\n Quelle est la taille de votre sapin? (en nombre de branche)\n\n ");
scanf("%d",&n);
isnd(S,n);
asnd(S,n);}
break;
case 2: {n=rand()%(35-1)+1;
isnd(S,n);
asnd(S,n);}
break;
case 3: {printf("\n Quelle est la taille de votre sapin? (en nombre de branche)\n\n ");
scanf("%d",&n);
isd(S,n);
asd(S,n);}
break;
case 4: {n=rand()%(35-1)+1;
isd(S,n);
asd(S,n);}
break;
case 5: again=1;
break;
default: printf("La valeur entrée est incorrecte.");
break;
}
printf("\n");}
printf("et merde");
return 0;}
je voudrais savoir si quelqu'un voit pourquoi ma boucle ne fonctionne pas...
Voilà, lerci d'avance.
int main(){
int again,c,n,S[200][200];
again=0;
while (again=0){
c=0;
printf("\n Que voulez'vous faire?");
printf("\n Tapez 1 pour afficher un sapin non décoré et dont vous choisissez la taille.");
printf("\n Tapez 2 pour afficher un sapin non décoré et la taille est aléatoire.");
printf("\n Tapez 3 pour afficher un sapin décoré et dont vous choisissez la taille");
printf("\n Tapez 4 pour afficher un sapin décoré et la taille est aléatoire.");
printf("\n Tapez 5 pour quitter.");
printf("\n\n\t");
scanf("%d",&c);
printf("\n");
switch(c){
case 1: {printf("\n Quelle est la taille de votre sapin? (en nombre de branche)\n\n ");
scanf("%d",&n);
isnd(S,n);
asnd(S,n);}
break;
case 2: {n=rand()%(35-1)+1;
isnd(S,n);
asnd(S,n);}
break;
case 3: {printf("\n Quelle est la taille de votre sapin? (en nombre de branche)\n\n ");
scanf("%d",&n);
isd(S,n);
asd(S,n);}
break;
case 4: {n=rand()%(35-1)+1;
isd(S,n);
asd(S,n);}
break;
case 5: again=1;
break;
default: printf("La valeur entrée est incorrecte.");
break;
}
printf("\n");}
printf("et merde");
return 0;}
Tchô!!
Lorsque tu souhaites utiliser la comparaison (si une variable est égal à, tant que c'est égal à, etc.), il faut utiliser ==. Lorsque tu souhaites affecter une valeur à une variable, il faut utiliser =.
Dans ton cas, tu mettais : while (again=0){. Le compilateur comprendra :
int again=0; while(again) { again=0; }Comme 0 correspond à false, la boucle ne sera jamais parcourue.
J'espère que tu y vois plus clair maintenant.
Cdlt,