Probleme IF en C# [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
16 septembre 2011
-
lucab03
Messages postés
2
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
16 septembre 2011
-
j'ai un probleme avec les if, il ne sont paas pris en compte. si vous avez une solution. Merci

 int age=0;
            int Nbe=0;
            int Nbep20=0;
            string Situation="0";

            Console.WriteLine("saisir votre age");
            age =Convert.ToInt32(Console.ReadLine());

            if((age < 20) || (age > 60))
            {
                Console.WriteLine("vous n'etes pas retenu pour le panel");
            }
            else
            {
                Console.WriteLine("saisir votre nombre total d'enfants");
                Nbe = Convert.ToInt32(Console.ReadLine());

                if( Convert.ToBoolean(Nbe = 0))
                {
                    Console.WriteLine("vous etes sélectionné pour le panel 3");
                }
                else
                {
                    Console.WriteLine("combien avez-vous d'enfants de plus de 20 ans ?");
                    Nbep20 = Convert.ToInt32(Console.ReadLine());

                    if(Nbep20 > Nbe)
                    {
                        Console.WriteLine("erreur de saisie");
                    }
                    else
                    {
                        if(Nbep20!=0)
                        {
                            Console.WriteLine("vous etes selectionné pour le panel 4");
                        }
                    }
                }
            }
          if(Nbep20< Nbe)
          {
              Console.WriteLine("etes-vous celibataire,veuf ou divorcé(e)? O ou N (repondre N si marié ou Pacsé)");
              Situation=Console.ReadLine();
          }
            if( Situation== "O")
            {
                Console.WriteLine("vous etes sélectionné pour le panel 1");
            }
            else
            {
                if( Situation=="N")
                {
                    Console.WriteLine("vous etes retenu pour le panel 2");
                }
                else
                {
                    Console.WriteLine("erreur de saisie");
                }
            }
         }
    }
}

3 réponses

Messages postés
81
Date d'inscription
lundi 10 avril 2006
Statut
Membre
Dernière intervention
1 janvier 2010

Voilà un code bien étrange.

Console.WriteLine("saisir votre age");
age =Convert.ToInt32(Console.ReadLine());

Que se passe-t-il si le candidant répond autre chose que des chiffres ?

if( Convert.ToBoolean(Nbe = 0))

Pourquoi ne pas mettre  : If (Nbe == 0) ....

if(Nbep20 > Nbe)
                    {
                        Console.WriteLine("erreur de saisie");
                    }

Il y a une erreur de saisie, mais le code continue son petit bonhomme de chemin...

if(Nbep20< Nbe)
          {
              Console.WriteLine("etes-vous celibataire,veuf ou divorcé(e)? O ou N (repondre N si marié ou Pacsé)");
              Situation=Console.ReadLine();
          }

Si Nbe=0 alors Nbep20=0 donc la question n'est pas posé, mais le code évalue quand même la réponse...

if( Situation== "O")

Et si l'utilisateur est en minuscule ?

Difficile de savoir se que tu veut faire exactement. Apparemment tu veut exclure toute les personnes de moins de 20 ans ou de plus de 60 ans, mais alors pourquoi le if sur le statu marital n'est pas inclut dans le else du premier if ?

Il faut que tu sois plus précis sur se que tu veut faire.

Bon courage.
A plus.
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
if (Convert.ToBoolean(Nbe = 0))

ca revient a écrire :

Nbe = 0;
if (false)

normal que ce test ne soit pas pris en compte. tu affecte 0 a nbe et tu convertit ca en bool
Messages postés
2
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
16 septembre 2011

merci beaucoup pour votre aide, sa marche