Boucle avec une variable booléen

Résolu
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

  1. Incrémenter une booleen ? mais elle vaut vrai ou faux normalement
    1. Contributeur
      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
      1. 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);
        }
      2. Contributeur
        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,
      3. Contributeur
        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
      4. 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
      5. Contributeur
        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
    2. 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;
      }
      1. merci ily fly