Simscript III/Dictionnaire des instructions/FIND

L’énoncé find permet de rechercher la première valeur (ou le premier pointeur) qui satisfait aux conditions spécifiées dans une expression logique introduite par une phrase "with" accolée à une phrase "for". Les exemples qui suivent la syntaxe du find feront mieux comprendre l’utilité de cet énoncé.



Exemples :

1.
for i = 1 to 10 with x(i) < 5
    find the first case

On récupère la première valeur de l’index i qui vérifie la condition x(i) < 5


2.
for each Ville with Population(Ville) > 100000
    find Grande_Ville = Nom(Ville)

On récupère dans la variable Grande_Ville (de type text) le nom de la première ville de plus de 100000 habitants.


3.
for each Personne in Vie
        with Age(Personne) >= 100
    find the first case
    if found,
        remove the Personne from Vie
         destroy Personne
    endif;
...

On supprime le premier centenaire de l’ensemble Vie.

for each Pompe
        with type_Essence (pompe) = _sans_plomb
              and Reserve (pompe) > = 100.0
    find the first case
    if found,
        let Reserve (pompe) = Reserve (pompe)  le_plein(auto)
    else
        :
    endif;


L’énoncé find doit toujours être introduit par au moins un for qui contient un with ou un unless. La phrase for ne doit cependant pas contrôler une boucle do ... loop. Enfin, la phrase optionnelle if none ou if found suit les mêmes règles que le if...else...endif.