4.7. Setting Up an Infinite Loop with repeat

If you simply write repeat, as in the following, you set up an infinite loop:

repeat
    statement
    statement
    ...
end repeat

Theoretically, this loop will execute forever, which of course, you don't want to happen. Therefore, you need some way to terminate the loop. Termination is usually based on some criteria, such as reaching the end of data or encountering some error condition. You can terminate execution of a repeat statement at any time by executing the following command:

exit repeat

When this command is executed, the loop is immediately terminated and execution continues with whatever follows the end repeat statement. If you execute this command within nested repeat statements, only the loop in which the command appears is terminated.

Incidentally, you have other ways to set up an infinite loop. For example, the following program counts to 10, as you saw with several other programs in this chapter:

set n to 1

repeat while true
    log n
    set n to n + 1
    if n > 10 then exit repeat
end repeat

Because true will always be, well, true, this repeat statement will theoretically execute forever, unless some action is taken to terminate the loop. After the value of n exceeds 10, the exit repeat is executed to exit from the loop. Certainly, this is not a very elegant way of doing things; I included it here for illustrative purposes only.

Get Beginning AppleScript® 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.