Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 12 sur 12
  1. #1
    Invité de passage
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 23
    Points : 4
    Points
    4

    Par défaut Question Facile si-et-alors

    Bonjour,

    Alors pour une fois j'ai une question simple en c# peut on faire:
    (j'ai bien sur chercher vite fait mais j'ai rien trouver)

    si condition et condition alors
    ou

    si (nombre negatif) alors
    Voila merci d'avance pour vos réponse.

    Florent

  2. #2
    Expert Confirmé
    Homme Profil pro Benoît
    Inscrit en
    février 2003
    Messages
    1 710
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoît
    Âge : 33
    Localisation : Belgique

    Informations forums :
    Inscription : février 2003
    Messages : 1 710
    Points : 2 704
    Points
    2 704

    Par défaut

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(cond1 && cond2)
    {
    /*alors*/
    }
    else if(nombre<0)
    {
    /*alors*/
    }
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Membre Expert

    Homme Profil pro John Doe
    Développeur .NET
    Inscrit en
    novembre 2010
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Nom : Homme John Doe
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2010
    Messages : 1 113
    Points : 1 999
    Points
    1 999

    Par défaut

    oui à partir du moment que ta condition te renvoie vrai ou faux c'est possible le et se traduit par && et le nombre négatif par ton nb<0.

  4. #4
    Invité de passage
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 23
    Points : 4
    Points
    4

    Par défaut

    Ha merci pour l'info , j'aurais pu trouver de moi méme , par contre pour le nombre negatif j'ai penser à cette méthode mais je pensais qu'il y en avait une autre mais un grand merci à vous tous

  5. #5
    Invité de passage
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 23
    Points : 4
    Points
    4

    Par défaut

    Bon sa ne fonctionne pas je vais donc vous donnez plus d'infos sur mon code

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    if ((Base - 60000) <0 && (Base - 60000) < 90000 )
                        {
                            Taux = 0;
                        }
                        if ((Base-60000)<90000){
    						Taux= 15;
                        }
                        if (((Base - 60000) > 90000) && ((Base - 60000) < 210000))
                        {
                            Taux = 25;
    					}
                        if  ((Base - 60000) > 210000)
                        {
    						Taux= 40;
    					}
    Le probléme dans ce code c'est que quand base est un chiffre négatif il m'affiche 15 alors que moi j'aurais voulu qui m'affiche 0
    Je pense qu'il verifie la conditions d'aprés et elle est aussi juste donc il affiche 15

    Il faudrais peut etre que je verifie la deuxième condition en premier ((Base-60000)<90000) ??

    Si vous avez des idées et je suis sur que vous en avez proposé moi

    Et encor merci pour votre aide

    Florent

  6. #6
    Membre régulier
    Inscrit en
    décembre 2010
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : décembre 2010
    Messages : 92
    Points : 90
    Points
    90

    Par défaut

    Je n'ai pas tout lu mais je pense que ton problème vient du fait qu'il te manque les "else" dans tes conditions suivantes.
    En effet, peut être que Base correspond à plusieurs conditions, et du coup passe dans la première, puis la seconde etc...
    Tu as essayé de mettre un point d'arrêt ? C'est le plus simple si tu veux suivre l'exécution de ton code et son comportement.

    A+

  7. #7
    Membre habitué
    Homme Profil pro Alexandre Trigueros
    Architecte C#
    Inscrit en
    février 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Trigueros
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : février 2003
    Messages : 77
    Points : 140
    Points
    140

    Par défaut

    Bonjour, que dirais tu d'une méthode par exemple :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public int GetTaux(int base)
    {
        var baseCalc = base - 60000;
        if(baseCalc >= 0)
        {
            if(baseCalc < 90000)
            {
                return 15;
            }
            if(baseCalc < 210000)
            {
                return 25;
            }
            return 40;
        }
     
         return 0;
    }

  8. #8
    Membre Expert

    Homme Profil pro John Doe
    Développeur .NET
    Inscrit en
    novembre 2010
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Nom : Homme John Doe
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : novembre 2010
    Messages : 1 113
    Points : 1 999
    Points
    1 999

    Par défaut

    Si tu fais des if à la suite il va tester chaque condition et tant qu'elle sont vrai il rentrera dedans, il faut spécifier le alors pour que les conditions suivantes soit exécutées que si les conditions précédentes sont fausses.

    Ex:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                int i = 5;
                int j = 0;
                if (i > 0)
                {
                    j = 3;
                }
                if (i == 5)
                {
                    j = 2;
                }
    j sera égal 2
    alors que

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                int i = 5;
                int j = 0;
                if (i > 0)
                {
                    j = 3;
                }
                else if (i == 5)
                {
                    j = 2;
                }
    j sera égal 3

  9. #9
    Invité de passage
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 23
    Points : 4
    Points
    4

    Par défaut

    @Vimaire

    Je ne suis pas trés doué dans les methodes :/ et j'ai peur que la variable base soit utiliser autre par, je vais de la modification de code et non un Dev complet

    @same66

    Pour les points d'arret c'est difficile car ce n'ais pas moi qui test (j'ai pas les droits d'utiliser l'application seul)


    Pour les else je peux faire comme ça:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    if ((Base - 60000) <0 && (Base - 60000) < 90000 )
                        {
                            Taux = 0;
                        }
                        else ((Base-60000)<90000){
    						Taux= 15;
                        }
                        else (((Base - 60000) > 90000) && ((Base - 60000) < 210000))
                        {
                            Taux = 25;
    					}
                       else ((Base - 60000) > 210000)
                        {
    						Taux= 40;
    					}
    Merci à vous 2

    ha j'été tomber sur un tuto de merde qui me diser if else mais visual studio ne voulais pas.

  10. #10
    Membre habitué
    Homme Profil pro Alexandre Trigueros
    Architecte C#
    Inscrit en
    février 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Trigueros
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte C#

    Informations forums :
    Inscription : février 2003
    Messages : 77
    Points : 140
    Points
    140

    Par défaut

    @youtpout978 : c'est pour ca que j'ai mis des returns successifs, pour éviter d'aller dans les autres ifs et de complexifier le code à le truffer de else

    @soron59 : si ca doit etre paramétrable par l'utilisateur ou un admin, ma réponse précédente n'est pas adaptée : il vaut mieux passer par un système de plages de valeurs.
    [Edit] dans tous les cas, c'est de la modification de code, simplement, dans un cas, tu factorise

  11. #11
    Invité de passage
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 23
    Points : 4
    Points
    4

    Par défaut

    Merci a vous tous c'est bon j'ai utilisé les else if et ça fonctionne trés bien

    Bonne soirée

  12. #12
    Inactif
    Homme Profil pro François
    Chef de projet NTIC
    Inscrit en
    janvier 2007
    Messages
    6 608
    Détails du profil
    Informations personnelles :
    Nom : Homme François
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 608
    Points : 14 145
    Points
    14 145

    Par défaut

    Cette ligne n'est pas très logique :

    Code :
    if ((Base - 60000) <0 && (Base - 60000) < 90000 )
    En effet, si base - 60000 est < 0, il est toujours inférieur à 90000 (il me semble que 0 < 90000, non ? ).

    donc :

    suffit.

    de plus, tu utilises Base - 60000 un peu partout et tu le calcul à chaque fois, ce qui n'est pas très lisible (ni optimal, même si le compiler applique des optim sur ce genre de truc).

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •