Mon programme ignore certaines instructions

Signaler
Messages postés
9
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
11 février 2010
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -
Messages postés
9
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
11 février 2010

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
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -
Messages postés
9
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
11 février 2010

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;
        }
Messages postés
9
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
11 février 2010

casSwitch = Frequence
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -