IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

boucle while, precision syntaxe


Sujet :

C++

Vue hybride

S2S [*]boucle while, precision... 27/06/2007, 19h42
Laurent Gomila Les opérateurs logiques (||,... 27/06/2007, 19h49
Bakura EDIT : après avoir lu la... 27/06/2007, 19h50
S2S rapide merci, un apercu de... 27/06/2007, 20h07
Bakura C'est à dire lorsque mode est... 27/06/2007, 20h11
S2S apparament, do...while... 27/06/2007, 20h16
Shugo78 Re : [*]boucle while, precision... 27/06/2007, 20h43
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut [*]boucle while, precision syntaxe
    lu,
    je n'arive pas a faire fonctionné le test d'une boucle do...while
    ca marche si je la simplifie comme ca:
    mais (il en fallait un...), je doit tester si la saisi est egale a 1 OU 2 OU 3,
    j'ai donc essayer ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while (mode!= 1 || 2 || 3)
    while (mode!= 1 || mode!= 2 || mode != 3)

    mais la boucle ne fini jamais meme si 'mode' est bien egale a 1,2 ou 3 (verifier)
    je n'ai pas trouver de syntaxe tres precise sur mes doc. (pdf, htm...)

    Je souhaiterai donc avoir des precisions sur la syntaxe 'do...while'

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Les opérateurs logiques (||, &&, etc.) renvoient un booléen. Tu ne peux donc pas les chaîner de cette manière (mode!= 1 || 2 || 3).
    Ta seconde syntaxe est plus correcte, il faut juste remplacer les || par des && (tu veux boucler tant que mode n'est pas 1 ET mode n'est pas 2 ET mode n'est pas 3).

  3. #3
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    EDIT : après avoir lu la réponse de Laurent, je crois que je me suis embrouillé avec les || et les &&

    EDIT2 : bon j'ai rien dit, je me suis trop embrouilllé

  4. #4
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut
    rapide merci,

    un apercu de la boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int mode;
    do
    {
    cout << "Choix du mode (1,2 ou 3) : ";
    cin >> mode;
    cout << "mode = " << mode << endl;
    } while (mode!= 1 || mode!= 2 || mode != 3);
    cout << "valeur de sorti : " << mode;
    return 0;
    }
    je souhaite sortir de la boucle quand 'mode' prend une des valeur suivante: 1,2,3

    ca resemble a un OU quand meme, et pourtant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    do
    {
    cout << "Choix du mode (1,2 ou 3) : ";
    cin >> mode;
    cout << mode << endl;
    } while (mode!= 1 && mode!= 2 && mode != 3);
    && fonctionne a merveille.
    j'ai besoin d'une petite explication la suis perdu (mais ca marche)

  5. #5
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    je souhaite sortir de la boucle quand 'mode' prend une des valeur suivante: 1,2,3
    C'est à dire lorsque mode est égal à 1, ou mode est égal à 2, ou mode est égal à 3, or l'opérateur est égal est ==, donc :

    while (mode == 1 || mode == 2 || mode == 3);

    or toi tu utilises !=, donc différent de. Ton code se traduit par :

    Je souhaites sortir de la boucle lorsque mode est différent de 1, différent de 2 et différent de 3 (donc quand mode vaut 1, 2, ou 3), ce qui se traduit en C++ par :

    while (mode != 1 && mode != 2 && mode != 3);

  6. #6
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut
    apparament, do...while execute la boucle tant que la condition est vrai:
    La structure de contrôle do permet, tout comme le while, de réaliser des boucles en attente d'une condition. Cependant, contrairement à celui-ci, le do effectue le test sur la condition après l'exécution des instructions. Cela signifie que les instructions sont toujours exécutées au moins une fois, que le test soit vérifié ou non. Sa syntaxe est la suivante :

    do opération;
    while (test);
    opération est effectuée jusqu'à ce que test ne soit plus vérifié.

    L'ordre d'exécution est :

    opération
    test

    Exemple 2-4. Boucle do

    p = i = 1;
    do
    {
    p = p * i;
    i = i + 1;
    } while (i != 10);
    donc !=
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (mode != 1 || mode != 2 || mode != 3);
    mais non, ca na fonctionne pas
    il faut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (mode != 1 && mode != 2 && mode != 3);
    maintenant j'aimerai comprendre pourquoi '&&' fait un 'OU'...

  7. #7
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Citation Envoyé par bakura
    Je souhaites sortir de la boucle lorsque mode est différent de 1, différent de 2 et différent de 3 (donc quand mode vaut 1, 2, ou 3).

  8. #8
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Lit mon message juste avant le tiens .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. boucles while/for : syntaxe incompréhensible
    Par Loceka dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/12/2006, 21h04
  2. probleme de syntaxe et boucle while
    Par ben23 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/01/2006, 18h04
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo