Discussion: break 2 boucles for

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2016
    Messages : 185
    Points : 51
    Points
    51

    Par défaut break 2 boucles for

    bonjour à tous j'ai ce code matlab
    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
     
    for i=1:size(b,1)
    for j=1:size(b,2)
    if b(i:j)>0
    N=N+1;
    s=sum(sum(b(i:j));
    T=[T;N,i,j,S];
    if (N ==1000) break
        break
    end
    end
    end
    end
     
    T
    avec b une matrice
    en effet je veux stocker dans la matrice T que les 1000 premières lignes donc j'ai fait 2 break pour sortir des boucles
    mais ça n'a pas marché pour moi
    Merci infiniment d'avance pour toute réponse

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    1 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2005
    Messages : 1 458
    Points : 2 575
    Points
    2 575

    Par défaut

    salut

    il te faut enregistrer l'information "je veux sortir de la 2eme boucle" dans un flag et regarder ensuite cette information pour casser le 2eme boucle :
    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
    flagSortir2emeBoucle = false;
    for i=1:size(b,1)
      for j=1:size(b,2)
        if b(i:j)>0
        N=N+1;
        s=sum(sum(b(i:j));
        T=[T;N,i,j,S];
        if (N ==1000) 
          flagSortir2emeBoucle = true;
          break
        end
      end
      if flagSortir2emeBoucle 
        break
      end
    end
     
     
    T

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2016
    Messages : 185
    Points : 51
    Points
    51

    Par défaut

    Citation Envoyé par le fab Voir le message
    salut

    il te faut enregistrer l'information "je veux sortir de la 2eme boucle" dans un flag et regarder ensuite cette information pour casser le 2eme boucle :
    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
    flagSortir2emeBoucle = false;
    for i=1:size(b,1)
      for j=1:size(b,2)
        if b(i:j)>0
        N=N+1;
        s=sum(sum(b(i:j));
        T=[T;N,i,j,S];
        if (N ==1000) 
          flagSortir2emeBoucle = true;
          break
        end
      end
      if flagSortir2emeBoucle 
        break
      end
    end
     
     
    T
    merci infiniment pour la réponse ça marche est ce que vous pouvez m'expliquer comment vous avez raisonné? pourquoi vous avez d'abord écrit if (N ==1000)
    flagSortir2emeBoucle = true;
    puis
    if flagSortir2emeBoucle

    merci

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    1 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2005
    Messages : 1 458
    Points : 2 575
    Points
    2 575

    Par défaut

    bein c'est simple :
    lorsque la condition de sortie des deux boucles et atteinte, je positionne le booléen flagSortir2emeBoucle à vrai (il était faux jusque là)
    puis je sort le la boucle actuelle avec un break
    dans la boucle mère il y a un if qui sort de celle ci si le flag flagSortir2emeBoucle , ce qui est le cas : je sort de la boucle mère également

    ...

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2016
    Messages : 185
    Points : 51
    Points
    51

    Par défaut

    Citation Envoyé par le fab Voir le message
    bein c'est simple :
    lorsque la condition de sortie des deux boucles et atteinte, je positionne le booléen flagSortir2emeBoucle à vrai (il était faux jusque là)
    puis je sort le la boucle actuelle avec un break
    dans la boucle mère il y a un if qui sort de celle ci si le flag flagSortir2emeBoucle , ce qui est le cas : je sort de la boucle mère également

    ...
    bon en fait , mon niveau n'est pas assez bon en programmation peut être je ne l'ai pas bien étudiée , toujours j'ai des idées mais je ne sais pas comment les mettre en relief via les différents code ( matlab, java,...) pourriez vous me donner un site avec lequel je pourrai améliore le niveau , merci

  6. #6
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    1 458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2005
    Messages : 1 458
    Points : 2 575
    Points
    2 575

    Par défaut

    commence par la FAQ et les tutoriels de Developpez.com

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

Discussions similaires

  1. Problème d'instruction break dans une boucle for
    Par transact dans le forum Langage
    Réponses: 11
    Dernier message: 16/10/2015, 13h56
  2. boucle for et break métaprogrammation
    Par CedricMocquillon dans le forum C++
    Réponses: 4
    Dernier message: 22/02/2012, 13h16
  3. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/SWING
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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