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

MATLAB Discussion :

Problème condition d'arrêt boucles while et for


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Points : 20
    Points
    20
    Par défaut Problème condition d'arrêt boucles while et for
    Bonjour,

    Voici la trame générale de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    x=0;
    while x~=1
        for i=1:maximum
            if % une condition 
                if % une autre condition
                    ...
                    ..
                    .
                    x=1;
                else x=2;
                end % fin du 2eme if  
            else x=3;      
            end % fin du 1er if     
        end % fin du for   
    end % fin du while
     
    if x==1
    %action
    elseif x==2
    %action
    elseif x==3
    %action
    end
    Il se trouve que mon programme tourne en boucle et ne s'arrête pas.... mais je ne comprends pas pourquoi ... pourtant je change bien la valeur du x à 1, ce qui devrait stopper la boucle while, et donc la boucle for ... Car je voudrais arrêter la boucle for lorsque les conditions "if" ont été réalisées, et j'utilise pour ça le "x", mais ça n'a pas l'air d'aller ...

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Le problème est la valeur de x lorsque ta boucle for est complètement terminée, donc x pour i=maximum.

    Je pense que tu fais une erreur en utilisant while, tu n'en as pas besoin ici si je comprends bien ce que tu veux faire :
    Arrêter la boucle for quand les 2 premières conditions ont été vérifiées.
    Dans ce cas il faut utiliser la fonction BREAK qui sortira de ta boucle (et plus besoin non plus de ta variable x)
    Exemple (très bête) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for k=1:5
       disp(k)
       if k==3
          break
       end
    end
    sprintf('Valeur de k à la fin de la boucle : %d',k);
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Points : 20
    Points
    20
    Par défaut
    Oui c'est ça la fonction break marche très bien, et pas besoin de boucle while !!
    mercii

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème champ texte dans boucle while
    Par merlubreizh dans le forum Langage
    Réponses: 7
    Dernier message: 10/08/2011, 19h28
  2. Faire une boucle while ou for en rich:faces
    Par DevServlet dans le forum JSF
    Réponses: 4
    Dernier message: 27/10/2009, 14h21
  3. Boucle while ou for utilisée avec lame pour les mp3
    Par figarojuju dans le forum Linux
    Réponses: 6
    Dernier message: 09/09/2008, 20h51
  4. Problème .destroy() dans une boucle while !
    Par stuffy dans le forum Tkinter
    Réponses: 1
    Dernier message: 29/06/2008, 01h30
  5. boucle while et for
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 06/04/2006, 09h48

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