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

Flash Pascal Discussion :

Sortie de boucle [Flash Pascal]


Sujet :

Flash Pascal

  1. #1
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut Sortie de boucle
    Voilà, j'avais besoin de sortir d'une boucle après un traitement et j'ai eu évidemment le réflexe d'utiliser Break mais malheureusement, l'instruction n'est pas opérationnelle sous flashpascal2...

    Difficile de s'en passer...

    Il y a moyen de l'introduire dans Flashpascal ?

    anthony

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    bonne question

    Break et Continue sont en fait des GOTO déguisés...ça doit être faisable, mais peut-être pas sans une méchante rustine...je vais y réfléchir

    EDIT: bon ça va pas être simple, le compilateur considère le contenu de la boucle comme un code opaque...difficile d'y inclure des goto, il va falloir que je modifie la représentation interne du code

    en attendant, il est possible de mettre la boucle dans une fonction et d'utiliser Exit
    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
    24
    25
    26
    27
    28
    29
    30
     
    program Project1;
     
    {$FRAME_WIDTH 550}
    {$FRAME_HEIGHT 400}
    {$FRAME_RATE 12}
    {$BACKGROUND $FFFFFF}
     
    uses
      Flash8;
     
    var
      l: TextField;
     
    procedure loop;
    var
      i: Integer;
    begin
      for i := 1 to 5 do
      begin
        l.Text := l.Text + ' ' + IntToStr(i);
        if i = 2 then
          Exit;
      end;
    end;
     
    begin
      l := TextField.Create(_root, 'l', 1, 10, 10, 100, 21);
      loop;
    end.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    Ok, pour le exit l

    Sur le forum delphi, un exit dans une boucle pour sortir, ça les fait hurler .
    La question était là seulement pour faire propre...

    merci pour ta réponse immédiate

  4. #4
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 567
    Par défaut
    Salut

    Pas la peine d'idéaliser, même le GOTO peut être utile. Essayez de sortir de boucles for imbriquées sur plusieurs niveaux, vous verrez que le GOTO va simplifier grandement le code, il ne faut pas l'utiliser à mauvaise escient. Est-il plus efficace de produire un code alambiqué pour contourner un GOTO utile ?

    Ceci dit, il m'est arrivé une fois d'utiliser un GOTO.

    Dans la VCL même, il y a parfois des exit dans des boucles, cela ne perturbe pas le code ni le lecteur...

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 158
    Billets dans le blog
    9
    Par défaut
    Autrement, on peut faire comme ça, non ?

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    program sortie_boucle;
     
    {$FRAME_WIDTH 550}
    {$FRAME_HEIGHT 400}
    {$FRAME_RATE 12}
    {$BACKGROUND $FFFFFF}
     
    uses
      Flash8;
     
    var
      l: TextField;
     
    procedure loop;
    var
      i: Integer;
      break: Boolean;
    begin
      i := 1;
      break := false;
      while (i <= 5) and not break do
      begin
        l.Text := l.Text + ' ' + IntToStr(i);
        if i = 2 then
          break := true;
        Inc(i);
      end;
    end;
     
    begin
      l := TextField.Create(_root, 'l', 1, 10, 10, 100, 21);
      loop;
    end.

  6. #6
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    Merci pour vos réponses...le soucis n'était pas de trouver le moyen de sortir de ma boucle mais de savoir si le break pouvait exister sous flashpascal sans susciter trop de chamboulements.

    merci

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 158
    Billets dans le blog
    9
    Par défaut
    Je saisis l'occasion pour faire une humble demande à Paul. Pourrais-tu faire une simple liste des mots-clés du compilateur ?
    Pour le moment le seul moyen de savoir si une instruction est disponible, c'est de l'essayer !
    C'est vrai qu'il y a les exemples, mais ce serait quand même bien d'avoir une liste.

  8. #8
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Je saisis l'occasion pour faire une humble demande à Paul. Pourrais-tu faire une simple liste des mots-clés du compilateur ?
    Pour le moment le seul moyen de savoir si une instruction est disponible, c'est de l'essayer !
    C'est vrai qu'il y a les exemples, mais ce serait quand même bien d'avoir une liste.
    en même temps il n'y a pas tant de mot clé en Pascal, et il en manque peu

    voici une page que je viens de mettre à jour ceci dit
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. sortie de boucle
    Par fred33 dans le forum Langage
    Réponses: 5
    Dernier message: 27/05/2008, 07h51
  2. Données d'Entrée - Sortie - Test - Boucle
    Par edmond dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 20/12/2007, 08h58
  3. probleme de resultat en sortie de boucle for
    Par afssaLERH dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/10/2007, 16h16
  4. sortie de boucle
    Par peldaine dans le forum VBScript
    Réponses: 4
    Dernier message: 18/07/2007, 13h59
  5. Sortie de boucle par validation O/N
    Par kOrt3x dans le forum Ada
    Réponses: 7
    Dernier message: 08/12/2006, 03h15

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