After searching for this exact problem, I found this book extract online. It exactly answers the question of how to skip the current iteration and jump straight to the next iteration of a repeat
loop.
Applescript has exit repeat
, which will completely end a loop, skipping all remaining iterations. This can be useful in an infinite loop, but isn't what we want in this case.
Apparently a continue
-like feature does not exist in AppleScript, but here is a trick to simulate it:
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
This will display the dialogs for 1, 2, 4 and 5.
Here, you've created two loops: the outer loop is your actual loop, the inner loop is a loop that repeats only once. The exit repeat
will exit the inner loop, continuing with the outer loop: exactly what we want!
Obviously, if you use this, you will lose the ability to do a normal exit repeat
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…