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.