Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages > C#
C# Forum d'entraide sur la programmation C#. Avant de poster -> FAQ C#, Articles C#, Sources C#
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/01/2013, 16h09   #1
soron59
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : 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
soron59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 16h14   #2
BenoitM
Expert Confirmé
 
Homme Benoît
Inscription : février 2003
Messages : 1 661
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : février 2003
Messages : 1 661
Points : 2 791
Points : 2 791
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
BenoitM est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 08/01/2013, 16h14   #3
youtpout978
Membre Expert
 
Homme John Doe
Développeur .NET
Inscription : novembre 2010
Messages : 937
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 : 937
Points : 1 506
Points : 1 506
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.
youtpout978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 16h29   #4
soron59
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : 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
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
soron59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 16h41   #5
soron59
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : 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
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
soron59 est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 08/01/2013, 16h49   #6
same66
Membre régulier
 
Inscription : décembre 2010
Messages : 87
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 87
Points : 77
Points : 77
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+
same66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 16h51   #7
Vimaire
Membre habitué
 
Homme Alexandre Trigueros
Architecte C#
Inscription : 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
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;
}
Vimaire est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/01/2013, 17h03   #8
youtpout978
Membre Expert
 
Homme John Doe
Développeur .NET
Inscription : novembre 2010
Messages : 937
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 : 937
Points : 1 506
Points : 1 506
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
youtpout978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 17h04   #9
soron59
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : 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
@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.
soron59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 17h06   #10
Vimaire
Membre habitué
 
Homme Alexandre Trigueros
Architecte C#
Inscription : 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
@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
Vimaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 17h56   #11
soron59
Invité de passage
 
Homme
Administrateur systèmes et réseaux
Inscription : 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
Merci a vous tous c'est bon j'ai utilisé les else if et ça fonctionne trés bien

Bonne soirée
soron59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 10h39   #12
Bluedeep
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 6 558
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 558
Points : 13 957
Points : 13 957
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).
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h31.


 
 
 
 
Partenaires

Hébergement Web