Condition if

Signaler
Messages postés
16
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
9 juin 2021
-
Messages postés
16362
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 juin 2021
-
Bonjour les amis....Je ne sais pas ce qui ne fonctionne pas sur mon code...à propos du condition if
Il me donne toujour la valeur 2000 or normalement ca ne doit pas être cela
public double[] getIRSA(Connection n)
 {
  
  double[] salaire=getValueOfIrsa(n);
  for(int i=0;i<salaire.length;i++)
  {
   System.out.println(salaire[i]);
  }
  
  double[] irsa=new double[salaire.length];
  for(int i=0;i<salaire.length;i++)
  {
    if(salaire[i]<=350000)
    {
     irsa[i]=2000;
    }

    if(350001<=salaire[i] && salaire[i]<=400000)
    {
     irsa[i]=(salaire[i]*5)/100;
    }

    if(400001<=salaire[i] && salaire[i]<=500000)
    {
     irsa[i]=(salaire[i]*10)/100;
    }

    if(500001<=salaire[i] && salaire[i]<=600000)
    {
     irsa[i]=(salaire[i]*15)/100;
    }

    if(salaire[i]>=600000)
    {
     irsa[i]=(salaire[i]*20)/100;
    }
   System.out.println(irsa[i]);
  }

  return irsa;
 }

Merci d'avance de votre aide. C'est le irsa qui me donne toujour 2000....alors que ce n'est pas normal

2 réponses

Messages postés
16362
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 juin 2021
122
Bonjour,

Une remarque sur ton code : un double n'est pas un nombre entier.
Donc si tu fais
if(salaire[i]<=350000)
et
if(350001<=salaire[i])
, il te manque le cas où le salaire est entre 350000.01 et 350000.99

Voici une alternative à ton code qui permet de résoudre ce problème :
public double computeIrsa(double salaire) {
    if (salaire <= 350_000)
        return 2000;
    if (salaire <= 400_000)
        return salaire*5/100;
    if (salaire <= 500_000)
        return salaire*10/100;
    if (salaire <= 600_000)
        return salaire*15/100;
    return salaire*20/100;
}

for (int i = 0; i < salaire.length; i++)
    irsa[i] = computeIrsa(salaire[i]);
Messages postés
16034
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 juin 2021
551
Bonjour

Tout d’abord, tu as essayé d’utiliser les balises de code mais pas tout à fait comme il faut, voir ici pour te prochain messages https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pour ton problème, as tu exécuté le code en pas à pas et espionné le contenu des variables?
Messages postés
16
Date d'inscription
mercredi 6 janvier 2021
Statut
Membre
Dernière intervention
9 juin 2021

Bonjour...merci beaucoup pour le lien je suis nouvelle sur ce alors je ne sais pas encore trop comment le faire.
Et pour le problème....c'est maintenant que je me rends compte et que je vois que c'est la valeur du salaire même qui est faux. tout est inferieur à 350 000.
Mais j'ai une autre problème mais c'est un peu difficile pour moi de le décrire ici