version 6.0
La syntaxe de la structure répétitive (ou boucle) Tant que...Fin tant que est la suivante :
Tant que (Expression_booléenne) instruction(s) Fin tant que
Une boucle Tant que exécute les instructions comprises entre Tant que et Fin tant que aussi longtemps que l'expression booléenne est VRAIE. Elle teste l'expression booléenne initiale et n'entre pas dans la boucle (et donc n'exécute aucune instruction) si l'expression est à FAUX.
Il est utile d'initialiser la valeur testée dans l'expression booléenne juste avant d'entrer dans la boucle Tant que. Initialiser la valeur signifie lui affecter un contenu approprié, généralement pour que l'expression booléenne soit VRAIE et que le programme entre dans la boucle.
La valeur de l'expression booléenne doit pouvoir être modifiée par un élément situé à l'intérieur de la boucle, sinon elle s'exécutera indéfiniment. La boucle suivante est sans fin car Infini est toujours VRAI :
Infini:=Vrai Tant que (Infini) Fin tant que
Si vous vous retrouvez dans une telle situation (où une méthode s'exécute de manière incontrôlée), vous pouvez utiliser les fonctions de débogage de 4D et remonter à la source du problème. Pour plus d'informations sur ce point, reportez-vous à la section Débogage.
Exemple
CONFIRMER ("Ajouter un enregistrement?") ` Est-ce que l'utilisateur veut ajouter un enregistrement? Tant que (OK = 1) ` Tant que l'utilisateur accepte AJOUTER ENREGISTREMENT([Table]) ` Ajouter un nouvel enregistrement Fin tant que ` Une boucle Tant que se termine toujours par Fin tant que
Dans cet exemple, la valeur de la variable système OK est définie par la commande CONFIRMER avant que le programme n'entre dans la boucle. Si l'utilisateur clique sur le bouton OK dans la boîte de dialogue de confirmation, la variable OK prend la valeur 1 et la boucle est exécutée. Dans le cas contraire, la variable OK prend la valeur 0 et la boucle est ignorée. Une fois que le programme entre dans la boucle, la commande AJOUTER ENREGISTREMENT permet de continuer à l'exécuter car elle met la variable système OK à 1 lorsque l'utilisateur sauvegarde l'enregistrement.
Lorsque l'utilisateur annule (ne valide pas) le dernier enregistrement, la variable système OK prend la valeur 0 et la boucle s'arrête.
Référence
Au cas ou...Sinon...Fin de cas, Boucle...Fin de boucle, Conditions et boucles, Repeter...Jusque, Si...Sinon...Fin de si.