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 :

Question 'basique' avec un switch


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut Question 'basique' avec un switch
    Bonjour à tous.

    J'ai un switch qui se présente comme ca:
    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(var)
    {
     case 1:
    //bidule
     break;
     
    case 2:
    //machin.
    break;
     
    //... j'ai 10 cas comme ca 
     
    defaut:
    break;
    }
    Et je souhaite appeller dans chacun des cas la même fonction foo().
    Existe il un moyen pour éviter de copier-coller l'appel à foo dans chacun des case ?

    Merci
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  2. #2
    Membre éclairé Avatar de Vespasien
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 383
    Par défaut
    Tu places l'appel à foo() avant ou après ton switch().

  3. #3
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Je ne peux pas, car ce switch est une une sous partie d'un ensemble de test plus globale.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  4. #4
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Explique un peu le contexte de ces tests.

  5. #5
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Bon,voici le code que je souhaite éviter car les appels à updateImgPiece me semble trop redondant.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
                    if(event.Type == sf::Event::KeyPressed)
    		 {
    		     switch(event.Key.Code)
    			 {
    			 case sf::Key::A :
    			     m_data->rotateL();
    			     updateImgPiece();
    			     //rotation vers la gauche (sens direct)
    			     break;
     
    			 case sf::Key::Z :
    			     m_data->symmetryY();
    			     updateImgPiece();
    			     //symetrie vecticale
    			     break;
     
    			 case sf::Key::E :
    			     m_data->rotateR();
    			     updateImgPiece();
    			     //rotation vers la droite (sens indirect)
    			     break;		
     
    			 case sf::Key::Q :
    			     m_data->pieceActualDown();
    			     updateImgPiece();
    			     //piece suivante Down
    			     break;			 
     
    			 case sf::Key::S :
    			     //symetrie horizontale
    			     m_data->symmetryX();
    			     updateImgPiece();
    			     break;
     
    			 case sf::Key::D:
    			     m_data->pieceActualUp();
    			     updateImgPiece();
    			     //piece suivante up
    			     break;			 
     
    			 }
    		 }
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Dans le code que tu donnes, il serait plus simple d'appeler ta fonction juste après le dernier case, autrement dit juste à la fin du if.
    En effet, raisonne un peu. Si tu as appuyé sur une touche, tu vas devoir mettre à jour ta pièce. Quelle que soit la touche.

    Donc l'appel à updateImgPiece() juste avant la fin du if semble logique, au lieu de le répéter.

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

Discussions similaires

  1. Question basique (sdl)
    Par insomniak dans le forum SDL
    Réponses: 2
    Dernier message: 24/10/2005, 18h03
  2. Question Basique Gestion Erreur VBA ...
    Par Le_Phasme dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 13h42
  3. Question basique
    Par PatLeOuf dans le forum C++
    Réponses: 1
    Dernier message: 23/03/2005, 10h57
  4. Réponses: 5
    Dernier message: 04/03/2005, 12h14

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