# 配列と反復子

配列変数の全ての要素へ、簡単アクセス！

反復子？

> 反復子なんて言っても、ちんぷんかんぷんです。

> でも、反復とあるから、何か繰り返すのだろうということは分かります。でも、それだけで、十分です。

> > かっこいいその手の本（プログラムの専門書）では、イテレーターなんて呼び方がされています。

> 書式：｛配列変数｝を、反復（｛命令文｝）。

> 以下は、「反復」の動作です。
> 1. 配列変数の要素の数を得る
> 2. ０番の要素から、最大の要素まで、配列の要素の数だけ、命令文を繰り返す
> 3. 命令を繰り返すときに、特殊変数「それ」へ、配列の値を、代入する

一番簡単なサンプル

> `{配列変数に、値を代入する} あ＃０＝「寿司」 あ＃１＝「天ぷら」 あ＃２＝「うどん」 あ＃３＝「牛丼」 ｛配列の各要素を、それに列挙しながら反復する｝ あを、反復（ 「客￥「今日｛それ｝は、美味しい？￥」」を、表示。 ）。`

> この、例だけで、反復子のメリットが理解してもらえれば、よいのですが・・・。
> それでは、もうちょっと突っ込んで、実用的な反復子の使い方を見てみましょう。

もっと、実用的なサンプル

> 私は、仕事で、相当多くの「雑用」を、させられています。

> そんな中でも多いのが、文章の各行の空白を取り除くだけだったり、各行に単語が羅列されており、それに番号をふるだけだったり・・・。手作業でやると、ものすごく時間がかかり、面倒な処理が多いのです。ところが、この反復子を使えば、以下の通り！

> たったの数行書くだけで、面倒な仕事が片付いてしまいます。

> `｛ファイルを読んで、各行の空白を取り除き行番号をつけて表示｝ 「himawari.hmw」を、読む。ソースは、それ。 行は、０ ソースを、反復（ それの、前後の空白削除。 「｛行｝：｛それ｝」を、表示。 行は、行＋１ ）。`

もっと、乙女チックなサンプル

> 反復子を使って、貴方の恋人の愛情を試してみましょう！

> `｛恋人の愛情を試すプログラム｝ ｛配列に問題を代入｝ テスト＃０＝「彼（彼女）は、友達を紹介してくれる」 テスト＃１＝「彼（彼女）と、1週間以上連絡が途絶えたことはない」 テスト＃２＝「彼（彼女）の携帯を勝手に見ても怒らない」 テスト＃３＝「彼（彼女）の考えていることが良く分かる」 テスト＃４＝「彼（彼女）は、貴方の誕生日を覚えている」 テスト＃５＝「彼（彼女）と、将来のことをよく語る」 テスト＃６＝「彼（彼女）は、一緒にいるとき、よく笑う」 テスト＃７＝「喧嘩をしても、すぐ仲直りする」 テスト＃８＝「彼（彼女）は、デートに遅刻しない」 テスト＃９＝「彼（彼女）は、貴方に優しい」 ｛テストのメイン部分｝ 点数は、０ テストを、反復 （ 「質問：｛それ｝」と、二択。 もし、それならば、点数＝点数＋１ ）。 「点数は、｛点数｝」と、言う。 もし、点数が、１０以上ならば、満点へ、飛ぶ。 もし、点数が、８以上ならば、安心へ、飛ぶ。 もし、点数が、４以上ならば、普通へ、飛ぶ。 違えば、不安へ、飛ぶ。 ｛結果表示｝ ＊満点 「満点です！すごい！恋人とラブラブです！」と、言う。 おわり。 ＊安心 「ラブラブですね。このままお幸せに。」と、言う。 おわり。 ＊普通 「普通のカップルです。もっと努力して、彼（彼女）を振り向かせよう！」と、言う。 おわり。 ＊不安 「破局寸前？！二人は大丈夫なの？」と、言う。 おわり。`

> ちょっと、長いような気がしますが、実際、友達と、遊んでみたら、かなり面白かったです。
> ま、長いと言っても、メイン部分は、たったの数行です。

応用編：単語帳を作ろう！も、参考に。

目次へ戻る／次へ