Probleme IF en C#

Résolu
lucab03 Messages postés 2 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 16 septembre 2011 - 29 oct. 2008 à 19:12
lucab03 Messages postés 2 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 16 septembre 2011 - 30 oct. 2008 à 13:27
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

DavidWhitewater Messages postés 81 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 1 janvier 2010
29 oct. 2008 à 20:03
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.
3
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
30 oct. 2008 à 09:21
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
0
lucab03 Messages postés 2 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 16 septembre 2011
30 oct. 2008 à 13:27
merci beaucoup pour votre aide, sa marche
0
Rejoignez-nous