「ショートカット」で「繰り返す」アクションを使用する
「繰り返す」アクションと「それぞれで繰り返す」アクションを使って、ショートカット内でアクションのグループを複数回連続して実行できます。
「繰り返す」アクションを使用する
ショートカットに「繰り返す」アクションを追加すると、「繰り返す」(独立したタグとしては表示されません)と「繰り返しの終了」の2つのマーカーが追加されます。繰り返したいアクションを「繰り返し」マーカーと「繰り返しの終了」マーカーの間に配置してから、アクションを繰り返したい回数を指定します。ショートカットを実行すると、マーカーの間に配置されたアクションは指定した回数ループします。
たとえば、「3回繰り返し」に設定された「デバイスを振動させる」アクションが含まれる繰り返しループでは、ショートカットを実行するとiOSデバイスが3回振動します。
繰り返しループ内に配置できるアクション数に制限はありません。アクションは順番に(上から下へ)実行され、最後のアクションに到達すると、ショートカットは最初のアクションに戻って(指定された回数だけ)再度実行されます。
ヒント:「繰り返す」アクションを入れ子にすることもできます。ショートカットエディタで、2つ目の「繰り返す」アクションを1つ目の「繰り返す」アクション内の下部にドラッグします。2つ目の「繰り返す」アクションが1つ目の「繰り返す」アクションに入れ子になってインデントされた状態になります。
「繰り返す」アクションの入力の流れについて
入力を「繰り返す」アクションに渡すと、その入力は反復するごとにループの先頭に渡されます。たとえば、ショートカットに「テキスト」アクションが含まれていて、それに続いて「テキストを読み上げる」アクションの繰り返しループがある場合、このショートカットでは同じテキストを複数回読み上げます。
繰り返しループが反復するごとに、最後のアクションの出力がリストへと収集され、そのリストが「繰り返す」アクション全体の出力になります。
たとえば、4回実行する「繰り返す」アクションに「最新の写真を取得」アクションが含まれる場合は、ループの反復ごとに「写真」に保存されている最新の写真を出力します。4回の反復をすべて実行すると、出力が収集されて、同一の写真4つからなるリストが作成されます。4つの写真は「繰り返す」アクション全体の出力になり、繰り返しループ後の次のアクションに渡されます。
入力と出力の流れについて詳しくは、ショートカットの仕組みを参照してください。
ヒント:プラス(+)ボタンとマイナス(−)ボタンの左にある空の領域をタップして、繰り返し回数を変数に設定できます。たとえば、「繰り返す」アクションの「繰り返し」パラメータに「実行時に尋ねる」変数を追加すると、ショートカットの実行時にループを繰り返す回数を選択するように求められます。
「それぞれで繰り返す」アクションを使用する
「それぞれで繰り返す」アクションは、項目のリストを入力として受け取り、リスト内の項目ごとに同じアクションのグループを1回実行します。これは、複数のファイルや複数のコンテンツを操作している場合に便利です。この種類のループは、「それぞれで繰り返す」アクションに渡されたすべての項目が反復するまで繰り返されます。
たとえば、「もうすぐ行われるイベントを取得」アクションが次の4個のもうすぐ行われるカレンダーイベントを取得するように設定されていて、そのアクションの後に「それぞれで繰り返す」アクションを配置した場合、繰り返しループは4回実行され、反復ごとにいずれかのカレンダーイベントを入力として受け取ります。
ショートカットに「それぞれで繰り返す」アクションを追加すると、「それぞれで繰り返す」(独立したタグとしては表示されません)と「繰り返しの終了」の2つのマーカーが追加されます。
繰り返しループの最後に、反復ごとに「繰り返しの終了」マーカーに渡された出力が収集され、「それぞれで繰り返す」アクション全体の出力として渡されます。
「繰り返し項目」変数
「それぞれで繰り返す」アクションには、現在の項目を追跡する特殊変数「繰り返し項目」が用意されています。「繰り返し項目」変数はループの反復ごとにアップデートされ、その反復における入力として渡された項目が含まれます。
たとえば、10個のカレンダー項目を「それぞれで繰り返す」アクションに渡した場合、ショートカットがカレンダー項目ごとにループする反復ごとに、「繰り返し項目」変数はいずれかのカレンダーイベントを表します。
注記:「それぞれで繰り返す」アクションを別の「それぞれで繰り返す」アクション内に配置した場合、この変数の名前は「繰り返し項目1」に変更され、内側の繰り返し項目を表します。さらに深いループの場合は「繰り返し項目2」になります。
「繰り返しインデックス」変数
すべての繰り返しループには「繰り返しインデックス」と呼ばれる特殊変数があり、ループの現在の反復を追跡するために使用されます。「繰り返しインデックス」変数にはループがこれまでに繰り返された回数が含まれます。ループの最初の反復を表す1で始まり、反復ごとに1増分します。2回目のループ実行時は「繰り返しインデックス」が2になり、3回目のループ実行時は「繰り返しインデックス」が3になります。
注記:「繰り返す」アクション内に別の「繰り返す」アクションを配置した(繰り返しループが入れ子になっている)場合は、内側の「繰り返す」アクションの変数名が「繰り返しインデックス2」に変わります。入れ子の「繰り返す」アクションがさらに追加されると、「繰り返しインデックス3」変数になります。
詳しくは、「ショートカット」で変数を使用するを参照してください。
無限ループを作成する
「ショートカット」にはアクションのグループを永遠に繰り返すアクションは用意されていませんが、「ショートカットを実行」アクションを使用することでこの動作をエミュレートできます。「ショートカットを実行」アクションを使用すると、ショートカット内で別のショーカットを実行できます。「ショートカットを実行」アクションで内包されている同じショートカットを実行するように構成すると、ショートカットは停止するまで最初から最後まで繰り返し実行されます。
出力をテストする
「繰り返す」および「それぞれで繰り返す」の使いかたを学習するときは、「繰り返しの終了」マーカーの後に生成される結果をテストして、意図通りのコンテンツになることを確認することをお勧めします。繰り返しループで出力される項目をプレビューするには、「繰り返しの終了」マーカーの後に「クイックルック」アクションを配置します。
また、「繰り返しの終了」マーカーの後に「アラートを表示」アクションを配置し、そのメッセージボックスに「繰り返しの結果」マジック変数を挿入すると、ループによって出力されたテキストを表示できます。長いショートカットの途中にあるループをテストする場合は、「アラートを表示」アクションを使用して結果をプレビューすることをお勧めします。アラート内に「キャンセル」ボタンを含めると、ループのそのポイントでショートカットを終了できます。