IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

probleme :Swith et fonctions utilisant des break; et continue;


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 21
    Points : 18
    Points
    18
    Par défaut probleme :Swith et fonctions utilisant des break; et continue;
    Bonsoir,
    j'ai un probleme.
    Dans mon main j'utilise un switch.
    Lorsque case vaut 1 ça rentre alors et ça m'appel une fonction recursive qui utilise les break et continue.
    A la fin de mon case je met un break afin qu'il ne rentre pas dans les case suivants.
    Mais je me retrouve avec une erreur au niveau du case suivant.

    J'ai décider de tester avec des if mais j'ai exactement le meme probleme.
    Lorsque ca rentre dans le premier tout est ok mais si ca rentre dans le second alors ma fonction recursive plante.

    Pour simplifier j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ( d==1) { fonction_recursive();}
    else if(d==2) { fonction_recursive();}
    Lorsque d vaux 2 cela plante mais pas lorsque d vaut 1.

    Le probleme ne viendrais pas du fait que j'utilise break et continue dans la fonction? Si oui comment faire pour que le programme comprenne que break et continu ne soit utilisé que dans la fonction?

    J'espere que vous avez compris et que vous pourrez m'aider !!
    Merci d'avance

  2. #2
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Montre le code de la fonction simplifiée en entier pour voir ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void SOLVER::solver(void){
      int l, c, nbre, nbre_tamp;
      for (l=0; l<taille; l++) {
          for (c=0; c<taille; c++) {
              if (n[l][c]) continue;
                    n[l][c]=nbre;
              }
          }
      }
      return;
    }

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Le probleme ne viendrais pas du fait que j'utilise break et continue dans la fonction? Si oui comment faire pour que le programme comprenne que break et continu ne soit utilisé que dans la fonction?
    break et continue ne sont "opératoires " que dans la boucle for, do, while ou le switch où ils sont placés.
    Il est bizarre que le comportement de solver(void) dépende d'un paramètre d que la fonction n'utilise pas ( ou alors dans case_dispo_nbre() ou grille_finie() ). Conséquence pour moi , le code est aussi incompréhensible que si d, taille, n[][] étaient (ou sont peut être d'ailleurs) des variables globales

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Pour faire simple je dois l'appeller 2 fois en fonction de d qui est une valeur saisie par l'utilisateur et passé en POST (j'utilise le SGI).

    Quand D vaut 1 je crée une grille puis en appellant une fonction qui se charge de mettre les 1ers chiffres, puis j'appel solver afin de remplir les autres.
    Quand D vaut 2 l'utilisateur saisie lui même et ensuite solver se charge de le resoudre.

    Je dois donc l'utiliser dans les deux cas, même si D n'influ pas sur le traitement que fera solver

Discussions similaires

  1. [ZF 1.9] probleme de routeur avec utilisation des modules
    Par SergeF dans le forum MVC
    Réponses: 7
    Dernier message: 01/02/2010, 16h06
  2. Utiliser des fonctions c depuis lua : problemes de parametres
    Par TheDrev dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 21/08/2009, 12h39
  3. Réponses: 26
    Dernier message: 16/07/2009, 10h41
  4. Besoin d'infos sur fonction utilisant des lookup table
    Par Phelix2003 dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 24/10/2008, 11h07
  5. prb création d'une fonction utilisant des fonctions de postgis
    Par Benjamin_es dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/03/2007, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo