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 :

Un petit doute concernant le switch


Sujet :

C++

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Un petit doute concernant le switch
    Bonjour
    Je doute sur ke break et le continue dans un switch.
    Pourriez-vous me confirmer mon code?
    Je mets mes commentaires dans le code.
    Ce qui est en vert, c'est OK.
    Ce qui est en rouge c'est ce que j'aimerais que ca face
    Ce qui est noir, ca idem pour les deux cas
    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
     switch(c)
                {
    // Si c à la valeur de V
                  case 'V':
    // excute la fonction
                    if(get_gsmloc())
                    {
    // Affiche le résultat
                      sprintln((char *)comm_buf);
    // Recule le pointeur à la psoition souhaitée/initiale
                      f = cellidLen;
    // Concatenate le résultat dans la variable fix
                      strncat(fix,(char *)comm_buf,FIXSIZE);
    // Quite le switch sans passer par default:
                      break;
                    }
                    else
                    {
    // Si get_gsmloc() return false, alors il faut que la suite passe par default:
    // Donc vu qu'il n'y a pas de break;, il passe de facto dans default: N'es-ce pas?
    // Je pense alors que de mettre 'continue;' ici, ca ne changera rien. Mais es-ce que 'continue' aurait
    // vraiment été adéquate?
    
                    }
                    
                  default:
                    fix[f] = c;
                    f++;
                }
    Merci pour vos confirmations!!!
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Heuuu, tu es sur de vouloir coder en C++, parce que là, ton code ressemble beaucoup plus à du C, et j'ai tendance à croire que tu te soies trompé de forum

    Mais, pour faire simple : chaque case d'un switch correspond en réalité à une "étiquette" et, si tu ne met pas le break, à la fin d'un case, ton programme passera à "l'étiquette suivante" sans s'inquiéter de quoi que ce soit.

    Quant au mot clé continue, je t'avouerai que j'ai horreur de l'utiliser, si bien que je conçois généralement ma logique de telle manière à éviter d'en avoir besoin
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Pour information, continue permet de sauter le pas courant d'une boucle.
    C'est utile par exemple pour sauter une entrée quand tu lis une séquence.

    Ca n'a pas sa place dans la logique d'un switch, mais dans un "plus grand schéma".
    Exactement comme un return.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 631
    Points : 10 558
    Points
    10 558
    Par défaut
    C'est normal que tu te poses des questions: c'est d'un tordu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        if((c == 'V') && get_gsmloc()) {
    //      Affiche le résultat
            sprintln((char*) comm_buf);
    //      Recule le pointeur à la psoition souhaitée/initiale
            f = cellidLen;
    //      Concatenate le résultat dans la variable fix
            strncat(fix, (char*) comm_buf, FIXSIZE);
        } else {
            fix[f] = c;
            ++f;
        }

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Super, merci pour vos réponses.
    Je suis bloquésur un autre problème qui se résou et je vais essayé tout ca plus tard

    @Koala,
    Je travaille avec Arduino qui fonction en C/C++. Je t'avoue ne pas encore savoir faire la différence
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par pierrot10 Voir le message
    Super, merci pour vos réponses.
    Je suis bloquésur un autre problème qui se résou et je vais essayé tout ca plus tard

    @Koala,
    Je travaille avec Arduino qui fonction en C/C++. Je t'avoue ne pas encore savoir faire la différence
    Attention, C/C++ est quelque chose qui n'existe plus depuis plus de dix ans (humm... nous pourrions même remonter à plus de 15 ) ...

    Il est vrai que la mentalité de C++ a été très fortement inspirée de celle de C, tout comme il est vrai que le premier compilateur C++ a été écrit en C. Il fallait bien "quelque chose" pour arriver à compiler le compilateur

    Mais, généralement, lorsque les gens parlent de C/C++, on se rend compte que soit ils envisagent C++ comme étant du C with classes, ce qui -- bien qu'étant d'une certaine manière, l'approche historique qui a été suivie dans l'apprentissage de C++-- présente énormément de lacunes au niveau de l'apprentissage du C++, soit nous avons affaire à des gens particulièrement incompétents dans les deux langages.

    Je sais que arduino est un système relativement à part, mais, si je peux te donner un conseil, ce serait, avant de t'attaquer à cet aspect particulier, de commencer par apprendre le vrai C++ de base et le vrai C de base, de manière à pouvoir établir clairement la limite qui existe entre les deux. Par la suite, tu pourras repartir sur arduino avec "de bonne bases"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Petit doute sur l'instruction "switch"
    Par SybVicious dans le forum Débuter
    Réponses: 6
    Dernier message: 28/08/2007, 10h57
  2. Petite erreur concernant les parenthèses
    Par bugland dans le forum Langage
    Réponses: 14
    Dernier message: 04/01/2007, 10h21
  3. Petite doute sur static...
    Par Paulinho dans le forum C++
    Réponses: 2
    Dernier message: 26/01/2006, 11h06
  4. Une petite doute avec le cycle while
    Par Paulinho dans le forum C++
    Réponses: 3
    Dernier message: 06/11/2005, 10h15
  5. Réponses: 11
    Dernier message: 21/06/2005, 10h16

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