После поиска именно этой проблемы я нашел выписку из книги онлайн. Это точно отвечает на вопрос, как пропустить текущую итерацию и перейти прямо к следующей итерации цикла repeat
.
Applescript имеет exit repeat
, что полностью завершит цикл, пропуская все оставшиеся итерации. Это может быть полезно в бесконечном цикле, но это не то, что нам нужно в этом случае.
Похоже, что continue
-подобная функция не существует в AppleScript, но вот хитрость для ее симуляции:
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
Появятся диалоговые окна для 1, 2, 4 и 5.
Здесь вы создали два цикла: внешний цикл - это ваш реальный цикл, внутренний цикл - цикл, который повторяется только один раз. exit repeat
выйдет из внутреннего цикла, продолжая с внешнего цикла: именно то, что мы хотим!
Очевидно, что если вы используете это, вы потеряете способность делать обычные exit repeat
.