Mon programme ignore certaines instructions

LilBisk Messages postés 9 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 11 février 2010 - 27 janv. 2010 à 13:31
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 27 janv. 2010 à 16:33
Bonjour à tous!

J'ai un soucis ... Mon programme a un squelette qui ressemble à ça :

static void Main(string[] args)
{
     Procédure BlaBla1();
     Procédure Blabla2(var1);
     foreach (string s in Liste)
     {
          Procédure Blabla3(var2, var3);
          switch (casSwitch)
          {
               case 1:
                   // Instructions avec des if imbriqués
                   break;
               case 2:
                   // Instructions avec des if imbriqués
                   break;
          }
      Procédure Blabla4;
     }
}


Le problème, c'est que lorsqu'il parcourt l'ArrayListe Liste, il ne fonctionne que pour le premier élément s de cet ArrayList. Ce qu'il fait ensuite, c'est qu'il exécute les procédures, entre dans le foreach, exécute la procédure du foreach, mais saute le switch pour passer directement à la procédure/instructions finales

Help!

Merci d'avance

6 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
27 janv. 2010 à 13:57
Tu es sûr que ta variable casSwitch a bien la valeur 1 ou 2 ?

Mets un point d'arrêt sur le switch et vérifie la valeur de la variable.
Sinon, mets un default dans ton switch.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
LilBisk Messages postés 9 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 11 février 2010
27 janv. 2010 à 14:17
En fait, le casSwitch n'est sensé avoir que deux valeurs possibles : Hebdomadaire ou Mensuelle.

Sur tes conseils, j'ai rajouté un default et en effet, toutes les valeurs de casSwitch se retrouvent dans le case default.
J'ai rajouté ensuite un case "" (champ vide) et mon casSwitch était en fait "vide" à partir du deuxième élément de l'ArrayList.

Mais, je ne vois toujours pas comment faire pour que mon casSwitch prenne une des valeurs qu'il est sensé avoir
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
27 janv. 2010 à 14:21
Sans le code concernant l'attribution des valeurs à casSwitch, on ne pourra pas t'aider.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
LilBisk Messages postés 9 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 11 février 2010
27 janv. 2010 à 14:26
Ah pardon.
En fait, casSwitch est le résultat du sous-programme que voici :
public static string OBTENIR_FREQUENCE_ENTREPRISE(string Un_Num_Entreprise)
        {
            string Frequence;
            Frequence = "";

            foreach (string[] Entreprise in Liste)
            {
                if (Un_Num_Entreprise == Entreprise[0])
                    {Frequence = Entreprise[13]; }
            }
            return Frequence;
        }
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LilBisk Messages postés 9 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 11 février 2010
27 janv. 2010 à 14:27
casSwitch = Frequence
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
27 janv. 2010 à 16:33
Met un point d'arrêt à l'ouverture de ton foreach et compare manuellement les valeurs de Entreprise[0] et Un_Num_Entreprise. Vérifie également qu'elles sont bonnes.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0