反復 (はんぷく)

分類分類/基本構文/フロー制御
種類命令
引数{=?}Sを|Sで
説明『(データS)を反復...』でデータSの要素分繰り返す。繰り返しに際し変数『それ』にデータの要素が代入される。
識別id:204

説明 (kujira) [2005年01月12日]

「(データ)を反復、(内容)」で、指定されたデータを一要素ずつ内容を実行します。
繰り返しの際には、変数『それ』にデータの要素が代入されます。

以下のプログラムは、フォルダ内のファイルを列挙し、そのファイルのファイルサイズを一つずつ表示します。

マイドキュメントのファイル列挙
それを反復
  ファイル名はそれ。
    マイドキュメント&ファイル名のファイルサイズを、
    Fサイズへ代入。
    「○{ファイル名}{タブ}{Fサイズ}B」を表示。

文字列を反復するときの説明 (kujira) [2005年01月12日]

引数のデータSに文字列を指定すると、文字列の一行を一要素とみなし反復します。
以下は、文字列に行番号をつけて表示するプログラムです。

反復命令では、反復する回数を変数『回数』に代入しているので、行番号をつけるプログラムはとてもシンプルに記述できます。

「あ
い
う
え
お」を反復
  「{回数}:{それ}」を表示。

※補足(fushigineko)[2024年1月29日] 反復が入れ子になっている場合には、1つ上の反復に戻って続けます。

途中で脱出する場合 (kujira) [2005年01月12日]

繰り返しの途中で繰り返しから抜ける場合は、『抜ける』命令を使います。

「あ
い
う
え
お」を反復
  「{回数}:{それ}」を表示。
    もし、それが「う」ならば、抜ける。

繰り返しの途中で次の繰り返しへ続けたい場合 (kujira) [2005年01月12日]

繰り返しの途中で次の繰り返しへ続けたい場合は「続ける」命令を使います。以下は、本来、いか、たこ、さんまと表示するプログラムですが、「たこ」ならば、それを表示しません。「続ける」命令によって、ループの先頭に戻って、次の繰り返しを行うからです。

「いか,たこ,さんま」を「,」で区切る
それを反復
    もし、それが「たこ」ならば、続ける。
  「●{それ}」を表示

反復の入れ子 (たけ) [2011年3月4日]

反復では変数『それ』と変数『対象』にデータの要素が挿入されます。
反復の中に反復がある場合、『対象』はデータが保存されますが『それ』は書き換わります。

動物は「馬
猿」。
植物は「さくら
ききょう」。
動物を反復
 「対象は{対象}。それは{それ}。」を表示。
 植物を反復
  「対象は{対象}。それは{それ}。」を表示。
 「対象は{対象}。それは{それ}。(それは植物でしょ?)」を表示。

反復の入れ子の補足[fushigineko](2024年1月29日)

 上の意味は、「対象」は 反復の入れ子に対応しており、内部に更に反復があった場合、その反復から抜けてくると、反復に入る前の値が復帰している、(入れ子に対応している)ということと、「それ」はあくまでも最後に「それ」に代入された値を保持しているだけなので、内部の反復が終了した時点で「それ」に入っていたものがそのまま残っている(入れ子に対応していない)ということです。
(当然のことですが、「回数」も入れ子に対応しています)

母艦の高さは母艦の高さ+200。

第一層は「第一層1
第一層2」

第二層は「第二層1
第二層2」

第三層は「第三層1
第三層2」

第一層を反復
 「対象は{対象}。回数は{回数}。それは{それ}。」を表示。
 第二層を反復
  「 対象は{対象}。回数は{回数}。それは{それ}。」を表示。
  第三層を反復
   「  対象は{対象}。回数は{回数}。それは{それ}。」を表示。
  「 第三層を反復した後の第二層レベルでの対象は {対象}。」と表示。
  「 第三層を反復した後の第二層レベルでの回数は {回数}。」と表示。
  「 第三層を反復した後の第二層レベルでのそれは {それ}。」と表示。