繰り返し

 「繰り返し」とは、ある一連の動作を条件にしたがって繰り返し実行する構文です。

 もっとも単純な「繰り返し」は、次のようなものです。

    repeat
      (命令文)
    end repeat

 これはそのまま実行すると繰り返しし続けるため、「無限ループ」と呼ばれています。もちろんいつまでたっても終わらない繰り返しでは困りますので、どこかで繰り返しを抜ける動作が必要になります。

    repeat
      (命令文)
      if (条件) then exit repeat
    end repeat

 例えば条件文を実行して、条件に一致した場合は「 exit repeat 」を実行し繰り返しから抜けます。

 次に、繰り返しの回数を指定したものがあります。

    repeat x times
      (命令文)
    end repeat

 「 x 」に数を入れることで、繰り返しの回数を指定できます。

 また、条件による繰り返しもあります。

    repeat while (条件文)
      (命令文)
    end repeat

    repeat until (条件文)
      (命令文)
    end repeat

 「 repeat while ... 」は条件が真である間繰り返しを実行し、「 repeat until ... 」は条件が真になるまで(つまり偽の間)繰り返しを実行します。-- 参照

 繰り返しの中でかなり頻繁に使われるのが、「数Aが数Bになるまで繰り返す」というものです。

    repeat with i from A to B [ by C ]
      (命令文)
    end repeat

 これは、整数Aが(整数Cずつ増えて)整数Bになるまで繰り返します。例えば、

    repeat with i from 1 to 10 [ by 2 ]
      (命令文)
    end repeat

 とすると、1が2ずつ増えて10になるまでだから5回、繰り返しが実行されます。「 i 」には増えている途中の数が代入されます。つまりこの場合、「1、3、5、7、9」が順に代入されます。

 尚、「 by ... 」を指定しなければ自動的に「 by 1 」が指定され、また「 by ... 」に負の数を代入すれば、「 i 」は減っていきます。例えば

    repeat with theNum from 10 to 1 by -1
      (命令文)
    end repeat

 とすれば、「 theNum 」は10から1ずつ減っていき、最後に1になります。

 「繰り返し」で一番面白いのは、次のものです。

    repeat with i in (リスト)
      (命令文)
    end repeat

 これはリストの各項目を順番に「 i 」に代入していき、全部代入し終わったら繰り返しを終了します。

 例えば

    repeat with aChar in { "A", "B", "C" }
      display dialog aChar
    end repeat

 を実行すると、"A"、"B"、"C" が順に表示されます。これは

    set theList to { "A", "B", "C" }
    repeat with i from 1 to ( count items of theList )
      display dialog item i of theList
    end repeat

 と書くのと同じことですが、最初の例の方がずっとすっきりスクリプトを記述できます。

 基本的に「繰り返し」はすべての構文を使用する必要がありません。それぞれ他のもので代用できるからです。いくつかの構文を使いこなせるようになったら、それで十分スクリプトを組むことができます。まずは「 repeat x times 」と「 repeat with i from A to B 」を使って色々スクリプトを組んでみて下さい。

Reference

次へ進む

AppleScriptの使い方に戻る
このホームページに関するお問い合わせは、karino@drycarbon.comまで。