Boucle avec une variable booléen

Résolu
leprogrammeur Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -  
ily fly Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je viens encore par ce canal poser une question.
Comment coder en C, enfin d'obtenir une boucle qui s'exécute à chaque fois que vous incrémentez la variable booléen de 1 pour dire continuer ou 0 pour dire arrêter. Je pense que c'est possible q'avec la boucle do....while, car il faut que le programme s'exécute au moins une fois.
Merci d'avance

4 réponses

thelucas24300 Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   19
 
Incrémenter une booleen ? mais elle vaut vrai ou faux normalement
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut leprogrammeur,

En C "faux" est 0, et "vrai" toute autre valeur que 0.

Donc, il suffit d'écrire
#include <stdio.h>

int main(void)
{
    int continuer = 0;
    do {
        printf("Je fais quelque chose.\n");
        /* insérer ici le code mettant la variable
         * "continuer" à autre chose que 0
         * sinon, cette boucle ne s'exécute qu'une
         * fois, et (re)mettant à 0 quand la
         * boucle doit s'arrêter */                                            
    } while (continuer);
    return 0;
}


Dal
0
leprogrammeur Messages postés 131 Date d'inscription   Statut Membre Dernière intervention  
 
voici ce que je compte faire
int main()

{
int pou;
do
{
printf("Hello");
printf("voulez vous encore afficher hello?")
scanf("%d",pou);
}while (pou ==0);
}
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
printf("voulez vous encore afficher hello?")
Il manque un point virgule

scanf("%d",pou);
Il manque le & => scanf("%d",&pou);

Et il manque le return 0;

Pour les prochaines fois, merci d'utiliser la balise "code" situé à droite du bouton "souligné" et choisir "C" dans la liste déroulante.

Cdlt,
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Hormis le nom de variable
int pou;
dont je ne saisis pas la pertinence, outre les remarques de fiddy, il manque aussi un
\n
à la fin de la chaîne.

Et à moins de jouer aux devinettes, comment l'utilisateur sait-il qu'il doit taper le chiffre 0 pour sortir de ta boucle ? Il faudrait le lui dire.

Par ailleurs, un
"oui"
ou
'o'
(voire
"yes"
ou
'y'
), ou
"non"
ou
'n'
est plus habituel pour une interface utilisateur en mode console (donc demander un %s dans le scanf, ou utiliser un fgets avec stdin, avec une taille appropriée de variable pour accueillir les différentes réponses valides sous la forme de chaîne C).

Il ne faut pas confondre les valeurs de ce qui est vrai ou faux en C ou évalué comme vrai ou faux dans une condition en C, et la façon dont tu gères la communication avec ton utilisateur (de plus, même en ce sens là, 0 signifierait "faux", ce qui se rapprocherai plutôt de
"non"
, et tu trompes là aussi ton utilisateur).


Dal
0
leprogrammeur Messages postés 131 Date d'inscription   Statut Membre Dernière intervention  
 
merci fiddy pour tes rémarques.
Dal j'ai fais un
printf("voulez- vous encore afficher\"HELLO\" \n")

puis il y a un
scanf("%d", &pou)
pou est une variable que recoit 1 pour oui et 0 pour non. c'est pourqoui j'ai fais
int pou;
.
Merci d'avance
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
salut leprogrammeur,

puis il y a un scanf("%d", &pou) pou est une variable que recoit 1 pour oui et 0 pour non. c'est pourqoui j'ai fais int pou;

oui, j'ai compris, mais tu n'as pas saisi :

- que je pensais que "pou" n'est pas un nom de variable très explicite, du moins dans les langues que je connais (par exemple : reponse ou choix, ou answer ou choice me sembleraient plus évidents) : là je pense aux relecteurs de ton code source
- que je pensais qu'un utilisateur aura plus envie de répondre "oui" ou "non", plutôt que "0" ou "1", surtout si tu ne lui dis pas quoi faire : là je pense aux utilisateurs de ton programme compilé


Dal
0
ily fly Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Vous pouvez faire:

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
int compteur=1;

while(compteur)
{
//Instruction à exécuté
printf("Voulez-Vous comtinuer?\n");
scanf("%i",&compteur);
}


system("PAUSE");
return 0;
}
0
leprogrammeur Messages postés 131 Date d'inscription   Statut Membre Dernière intervention  
 
merci ily fly
0
ily fly Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
pas de quoi ^^
0