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 :

Condition if avec des Ou


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut Condition if avec des Ou
    Bonjour tout le monde,

    J'aimerais faire une condition avec des ou du genre :

    If (A == 3 | 4 | 5 | 6 )
    {
    blabla
    }

    Soit exécuter des instructions si la variable A est égal à 3 ou à 4 ou à 5 ou à 6.
    Cette syntaxe ne marche pas alors peut être ai-je fait une erreur.

    Merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 179
    Par défaut
    ben avec de simple else if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(a==3)
    {
    instructions
    }
    else if(a==4)
    {
    instructions
    }
    etc...

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Citation Envoyé par ulquiorra Voir le message
    ben avec de simple else if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(a==3)
    {
    instructions
    }
    else if(a==4)
    {
    instructions
    }
    etc...
    Non, Ceci n'est pas équivalent puisque si A==3 le code exécuté n'est pas le même que si A==4

  4. #4
    Membre confirmé Avatar de nicodn02
    Profil pro
    Consultant .NET
    Inscrit en
    Mars 2007
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Mars 2007
    Messages : 263
    Par défaut
    on pourrait utiliser un switch case aussi

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    Ca lui ferait réécrire tout son code pour rien
    La solution de diogene est à mon gout plus appropriée

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    1- Attention, | est le ou bit à bit. Le ou logique est ||
    2- Il faut tester A à chaque condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (A == 3 || A== 4 || A== 5 ||A== 6 ){...}
    Ou, dans ce cas précis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (A >= 3 &&  A<=6 ){...}

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Par défaut
    Bonjour, ta plusieurs solutions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( (A==3) || ( A==4 ) || ( A==5 ) || ( A==6) )
    {
    //ton code
    }
    Deuxieme solution que nicodn02 propose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    switch ( A )
    {
     
    case 3 : //ton code;break;
    case 4 : //ton code;break;
    case 5 : //ton code;break;
    case 6 : //ton code;break;
     
    default : //ton code;break;
     
    };

  8. #8
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Ou, si tu veux que le même code soit utilisé pour plusieurs constantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    switch ( A )
    {
      case 3 :
      case 4 :
        code_pour_3_et_4
        break;
      case 5 :
        code_pour_5
        break;
      case 6 :
        code_pour_6
        break;
      default :
        code_pour_le_reste
        break;
    };

  9. #9
    Membre confirmé Avatar de nicodn02
    Profil pro
    Consultant .NET
    Inscrit en
    Mars 2007
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Mars 2007
    Messages : 263
    Par défaut
    concernant le default, il n'est pas obligatoire, ainsi que son break ?

  10. #10
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Absoluement pour le break.

    Effectivement pour le défaut c'est facultatif. Il me semble toutefois que si il n'est pas précisé lorsque tu teste sur un enum, ton compilo peut se plaindre qe des cas ne sont pas pris en compte (il me semble). Personellement j'ai pris l'habitude de l'implémenter.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    Je vous remercie énormément pour toutes vos réponses. En effet j'ai choisi la solution de Diogène avec les if ( A==5 || A==6 ........ ) vu que j'ai pas mal de conditions à faire. La solution de switch Case m'était déjà passé par a tête mais cette solution aurait été trop longue.
    Juste pour information ceci est pour un calendrier à base de RTC et ma condition était pour m'informer par le biais d'une variable si nous étions dans un mois de 30 ou de 31 jours.

    Je vous remercie encore une fois !

    A bientot

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

Discussions similaires

  1. Condition if avec des fonctions
    Par Grizli dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 08/12/2011, 16h12
  2. Réponses: 1
    Dernier message: 09/05/2007, 10h57
  3. Makefile avec des conditions
    Par meufeu dans le forum Linux
    Réponses: 2
    Dernier message: 04/08/2006, 11h46
  4. Réponses: 1
    Dernier message: 30/06/2006, 16h01
  5. [ASE][T-SQL] Appel d'une sous-proc avec des conditions
    Par metheorn dans le forum Sybase
    Réponses: 1
    Dernier message: 19/05/2006, 18h38

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