Après la recherche de ce problème exact, je trouve cette book extract en ligne. Il répond exactement à la question de savoir comment ignorer l'itération en cours et passer directement à l'itération suivante d'une boucle repeat
.
Applescript a exit repeat
, qui se terminera complètement une boucle, en sautant toutes les itérations restantes. Cela peut être utile dans une boucle infinie, mais ce n'est pas ce que nous voulons dans ce cas.
Apparemment continue
-comme fonctionnalité n'existe pas dans AppleScript, mais voici une astuce pour simuler:
set aList to {"1", "2", "3", "4", "5"}
repeat with anItem in aList -- # actual loop
repeat 1 times -- # fake loop
set value to item 1 of anItem
if value = "3" then exit repeat -- # simulated `continue`
display dialog value
end repeat
end repeat
Cela permet d'afficher les boîtes de dialogue pour 1, 2, 4 et 5.
Ici, vous avez créé deux boucles: la boucle externe est votre boucle réelle, la boucle interne est une boucle qui se répète une seule fois. Le exit repeat
quittera la boucle interne, en continuant avec la boucle externe: exactement ce que nous voulons!
De toute évidence, si vous l'utilisez, vous perdrez la possibilité de faire une exit repeat
normale.
Le code ci-dessus ne compilera pas car les commentaires dans l'applescript sont - pas # – alexy13
Dans l'applescript 2.0, le signe # est également autorisé pour les commentaires: https://developer.apple.com/library/mac/documentation/applescript/ conceptuel/applescriptlangguide/conceptuel/ASLR_lexical_conventions.html # // apple_ref/doc/uid/TP40000983-CH214-SW8 – Joakim
le code compilerait de toute façon parce que « - » précède tous les « # » et « - » a toujours marqué un commenter dans AppleScript. –