Simscript III/Dictionnaire des instructions/FOR EACH ... IN (SET)

C’est une phrase de contrôle de boucle qui porte sur des entités contenues dans une file d’attente.

Syntaxe :



Ensemble est un ensemble et Repère une variable entière (index ou pointeur). La boucle passe en revue les entités membres de l’ensemble Ensemble depuis le first F.Ensemble jusqu’au last L.Ensemble dans l’ordre de leur rangement (ou en sens inverse s’il est spécifié "in reverse order") et place le repère de l’entité dans la variable Repère . On peut imposer le démarrage de la bouche Borne. Si Borne n’est pas dans l’ensemble Ensemble, un message d’erreur est émis et le programme s’arrête. Par contre si la file est vide, ou si les conditions spécifiées par des phrases with, unless, until ajoutées au for ne sont jamais vérifiées, les énoncés de la boucle commandée par le for ne sont pas exécutées et la variable Repère garde la valeur zéro.


Exemple :

for each Canal called i,
    for each Sens called j.
        for each Paquet in Bac(i, j) with Type(Paquet) = _Ack
        do
           ...
        loop ;