Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Question sur le switch-case ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#11 Message par paulfjujo » mar. 1 déc. 2015 10:56

bonjour,

On voit tres bien (visuellement) le comportement du switch avec ou sans break
en utilisant le mode debugger de mikroE et l'outil Watch pour compter/chronometrer le nombre de cycles correspondants
exemple:

Code : Tout sélectionner

j=;
   switch(j)
   {
     case 0:
    {
      Led_Verte_D5=1;
       Led_Verte_D6=0;
        // break;
    }
      case 1:
    {
       Led_Verte_D5=0;
       Led_Verte_D6=1;
      // break;
    }
      case 2:
    {
      Led_Verte_D5=1;
       Led_Verte_D6=1;
      // break;
    }
   


resultat temps d'execution global du switch
............ Avec Break...... Sans Break
j=0 ........ 3.8 ............... 11.2 µS
j=1 ........ 5.8................ 6.4
j=2 ........ 7.4............... 7.4


il me semble donc plus judicieux de l'utiliser !

question au webmaster: comment peut -on mettre une tabulation ou plusieurs espaces dans du texte ?
Aide toi, le ciel ou FantasPic t'aidera

Question sur le switch-case ?
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1644
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#12 Message par Gérard » mar. 1 déc. 2015 11:53

Merci Claudius pour ces détails.
En fait, comme j'écris en Basic, il n'y a pas d'accolade. Le "switch" existe, je l'utilise mais je ne mets pas de "break" dans chaque cas.

Paul, en est-il de même en Basic?
Modifié en dernier par Gérard le mar. 1 déc. 2015 11:54, modifié 1 fois.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Question sur le switch-case ?
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 69
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#13 Message par Claudius » mar. 1 déc. 2015 11:54

@paulfjujo: Si l'idée de compter le temps passé dans les 2 cas (avec ou ou sans break) est bonne, cela ne justifie pas la remarque "il me semble donc plus judicieux de l'utiliser !" [utiliser l'instruction break]" car il n'y a pas de "judicieux" qu'il vaille.

Est-ce une volonté d'exécuter du code inutile ?!..

Dans le cas présent, je ne pense pas que dans l'exemple fourni sans les break, il est judicieux de mettre à jour 3 fois de suite (dans le cas "case 0:" ;-) les variables Led_Verte_D5 et Led_Verte_D6 pour qu'en final elles soient toutes les 2 à ... 1 ce qui justifie naturellement à passer plus de temps qu'avec l'instruction break !

La seule chose qui compte, c'est ce que l'on souhaite faire, un point c'est tout (cf. mon post #10)
Modifié en dernier par Claudius le mar. 1 déc. 2015 11:57, modifié 1 fois.

Question sur le switch-case ?
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1644
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#14 Message par Gérard » mar. 1 déc. 2015 11:57

L'exemple est quand même frappant, plus d'instructions et moins de temps d'exécution, je trouve donc judicieux de mettre des "break".
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Question sur le switch-case ?
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 69
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#15 Message par Claudius » mar. 1 déc. 2015 12:07

@Gérard:

En fait, comme j'écris en Basic, il n'y a pas d'accolade. Le "switch" existe, je l'utilise mais je ne mets pas de "break" dans chaque cas.

Nous sommes sur un forum Langage C ?!..
N'étant pas sectaire, sauf erreur de ma part, en Basic le switch /case est défini comme un Select Case / Case avec plus de subtilités et il n'y a effectivement pas de break (cf. Select...Case Statement (Visual Basic) par exemple)

Plus d'instructions et moins de temps d'exécution

Tu parles de quelles instructions ? Si c'est de l'instruction break qu'il s'agit, c'est tout à fait normal et logique...

Je trouve donc judicieux de mettre des "break"

[soupir avec humour]
( ͡° ͜ʖ ͡°)
( ͡⊙ ͜ʖ ͡⊙)
( ͡◉ ͜ʖ ͡◉)
[/soupir avec humour]

Attention à ne pas faire de la programmation empirique ;-).


Cordialement, A+
--
Claudius

Question sur le switch-case ?
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1644
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#16 Message par Gérard » mar. 1 déc. 2015 17:56

Claudius a écrit :@Gérard:

En fait, comme j'écris en Basic, il n'y a pas d'accolade. Le "switch" existe, je l'utilise mais je ne mets pas de "break" dans chaque cas.

Nous sommes sur un forum Langage C ?!..


Et donc parce que c'est un forum C que je n'ai pas le droit de dire que je fais du Basic?

Claudius a écrit :N'étant pas sectaire, sauf erreur de ma part, en Basic le switch /case est défini comme un Select Case / Case avec plus de subtilités et il n'y a effectivement pas de break (cf. Select...Case Statement (Visual Basic) par exemple)

Plus d'instructions et moins de temps d'exécution

Tu parles de quelles instructions ? Si c'est de l'instruction break qu'il s'agit, c'est tout à fait normal et logique...


J'utilise Proton+, pas VisualBasic.
Je parlais de l'exemple de Paul.

Claudius a écrit :
Je trouve donc judicieux de mettre des "break"

[soupir avec humour]
( ͡° ͜ʖ ͡°)
( ͡⊙ ͜ʖ ͡⊙)
( ͡◉ ͜ʖ ͡◉)
[/soupir avec humour]

Attention à ne pas faire de la programmation empirique ;-).


Cordialement, A+
--
Claudius


J'ai beau chercher, je ne trouve aucun soupçon d'humour ...
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Question sur le switch-case ?
Claudius
Avatar de l’utilisateur
Passioné
Passioné
Messages : 260
Âge : 69
Enregistré en : septembre 2015
Localisation : ELANCOURT (78 - YVELINES)
Contact :

#17 Message par Claudius » mar. 1 déc. 2015 18:41

Bonsoir,
@Gérard: J'ai beau chercher, je ne trouve aucun soupçon d'humour ...

Désolé si je t'ai froissé mais ce n'est et ne sera jamais mon intention sur aucun forum auquel je contribue dont celui-ci qui regorge déjà de beaucoup d'informations pertinentes...

Ce que je voulais expliquer, peut-être maladroitement, c'est que s'agissant de ce fil de discussion "switch / case avec ou sans break et/ou avec ou sans accolades", je crains qu'il y ait beaucoup de confusion entre les spécifications d'un langage (C et autres comme le Basic ;-)) et les utilisations de celui-ci.

Maintenant, j'avoue que cela n'est pas simple car chaque compilateur ou interpréteur implémente à sa façon ces spécifications et c'est pourquoi on peut malheureusement s'y perdre facilement.

Le principal est que chacun trouve son bonheur dans la réalisation de ses projets personnels.

Désolé encore Gérard, A+ sur d'autres fils de discussion de ce forum auquel je souhaite longue vie...

Question sur le switch-case ?
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1644
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#18 Message par Gérard » mar. 1 déc. 2015 20:54

Claudius a écrit :...
Le principal est que chacun trouve son bonheur dans la réalisation de ses projets personnels.


La, je suis bien de ton avis.

Claudius a écrit :Désolé encore Gérard, A+ sur d'autres fils de discussion de ce forum auquel je souhaite longue vie...


Un coup d'éponge et on passe à autre chose.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Question sur le switch-case ?
FantasPic
Avatar de l’utilisateur
Administrateur du site
Administrateur du site
Messages : 46
Enregistré en : juillet 2015
Contact :

#19 Message par FantasPic » mar. 1 déc. 2015 21:11

Bonsoir tout le monde,

question au webmaster: comment peut -on mettre une tabulation ou plusieurs espaces dans du texte ?

Les multiples espaces dans une zone de texte , sont malheureusement impossible ainsi que dans les citations. En effet dans les forums l'indentation n'est pas autorisée pour des raisons de sécurité, mais aussi de praticité lors des frappes de phrase.
Un module pourrait certainement être envisagé, mais au peu d'occasion ou cela s’avère nécessaire, je ne le recommande pas ( ralentissement par cumul).

Vous pouvez par contre utilisez l'indentation dans les balises [code][ /code] pour mettre en forme un texte.

Je vais fouiller tout de même , afin de trouver une solution satisfaisant cette demande .

Bonne soirée sur Fantaspic.fr

Question sur le switch-case ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#20 Message par paulfjujo » mer. 2 déc. 2015 13:31

test avec balise code

Code : Tout sélectionner


    Avec Break    Sans Break
j
=0         3.8        11.2 µS
j
=1         5.8         6.4
j
=2         7.4         7.4



finalement, l'usage de la balise code , permet de garder la mise en forme du texte
avec tabulation .. c'est donc une solution suffisante.

Merci ! du tuyau
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 41 invités