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 :

Utilisation de else dans une commande switch


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2021
    Messages : 2
    Par défaut Utilisation de else dans une commande switch
    Comment écrire avec switch , le code :
    Int a,b;
    If(a=1)b=10;else b=-10;
    If(a=2)b=20; else b=-20;
    If(a=3)b=30; else b= -30;
    .....
    If(a=10) b=100; else b=-100;

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 438
    Par défaut
    Bonjour,
    Il y a un problème de logique ici.
    Si a vaut 3, la première ligne affecte -10 à B, la deuxième -20, la troisième 30, la quatrième -40...
    Bref seule la dernière ligne sera prise en compte, et B vaudra -100.

    Donc ici ton code peut se résumer à une seule ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b=(a == 10 ? 100 : -100);
    Tatayo.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2021
    Messages : 2
    Par défaut
    Non tayayo, toutes les lignes seront prises en compte , tout dépendra de la valeur de a , valeur que nous n'avons pas fixée mais qui peut être fixée dans un autre programme, car nulle part il est dit que la valeur de a variait automatiquement et puis la question c'est comment utiliser switch pour écrire le même code

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 438
    Par défaut
    Je maintiens ce que j'ai dis.

    Prends l'exemple que j'ai donné: que ce passe t'il si A vaut 3 ?
    Quelle sera la valeur de b ? -100.
    Explication:
    1. Le test de la première ligne est faux, donc b vaut -10
    2. Le test de la deuxième ligne est faux, donc b vaut -20
    3. Le test de la troisième ligne est vrai, donc b vaut 30
    4. etc...
    5. Le test de la dixième ligne est faux, donc B vaut -100.


    Mais puisque tu n'es pas d'accord, expliques nous pourquoi la dernière ligne ne sera par prise en compte ?
    Si A vaut 3, pourquoi le code s'arrêterait à la troisième ligne ?
    Chaque ligne ici est indépendante des précédentes, donc ce code ne peut pas être écrit avec un CASE.

    Donc oui, toutes les lignes sont prises en compte, mais au final la valeur de B ne dépend que de la dernière.

    Tatayo.

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Ce que Tatayo essaie de t'expliquer c'est que sans "return" ton code ne s'arrêtera pas.
    L'exécution va donc passer dans chaque if..else et c'est forcément le dernier à s'exécuter qui déterminera la valeur de b.
    Et par conséquent même si a vaut 3, tu passera forcément dans le dernier if...else et b vaudra donc -100.

    Mais si on se fie à ta logique et au résultats que tu donnes à b en fonction de a, il n'est nullement besoin de if et encore moins de switch.
    Cela suffit :
    Sinon, explique nous ce que tu cherches à faire parce que c'est loin d'être clair.

Discussions similaires

  1. [Batch] Utilisation de %%x dans une commande set
    Par lxl77 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 14/06/2019, 17h17
  2. Utiliser un paste dans une commande system ()
    Par pupilSAS dans le forum R
    Réponses: 2
    Dernier message: 28/01/2019, 16h06
  3. Utiliser des options dans une commandes
    Par Ladgalen dans le forum Débuter
    Réponses: 8
    Dernier message: 17/12/2009, 14h42
  4. Réponses: 21
    Dernier message: 21/08/2008, 23h30
  5. Réponses: 2
    Dernier message: 31/01/2008, 13h59

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