Looping

The other major form of choice is looping, which involves branching back to the start of a block repeatedly. In AppleScript, looping is performed with repeat. There are several varieties of repeat, but repeat blocks all take same basic form:

repeat whatKindOfRepeat
-- what to do
end repeat

The big question with a repeat block is how you’re going to get out of it. Obviously you don’t want to repeat the repeat block forever, since this will be an infinite loop and will cause the computer to hang. Usually you deal with this through the nature of the whatKindOfRepeat, which typically provides a condition to be evaluated, as a way of deciding whether to loop again, or some other form of instruction governing how many times the block will be repeated.

There are also some special commands for hustling things along by leaping completely out of the repeat block. They can be used with any form of repeat block. Here they are:

return

This command leaves the repeat block by virtue of the fact that it terminates execution of the handler or script.

exit repeat

This command exits the innermost repeat block in which it occurs. Execution resumes after the end repeat line.

Repeat Forever

A repeat block with no whatKindOfRepeat clause repeats unconditionally, whence forever. Obviously you don’t really want it to repeat forever, so it’s up to you to supply a way out. I just told you two ways out. A third is to loop inside a try block and to throw an error; this method is illustrated later ...

Get AppleScript: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.