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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
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
Bon sa ne fonctionne pas je vais donc vous donnez plus d'infos sur mon code
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
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 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; }
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
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+
Bonjour, que dirais tu d'une méthode par exemple :
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 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; }
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:
j sera égal 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
alors que
j sera égal 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
@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:
Merci à vous 2
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 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; }
ha j'été tomber sur un tuto de merde qui me diser if else mais visual studio ne voulais pas.
@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
Merci a vous tous c'est bon j'ai utilisé les else if et ça fonctionne trés bien
Bonne soirée
Cette ligne n'est pas très logique :
En effet, si base - 60000 est < 0, il est toujours inférieur à 90000 (il me semble que 0 < 90000, non ? ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ((Base - 60000) <0 && (Base - 60000) < 90000 )
donc :
suffit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ((Base - 60000) <0
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager