配列と反復子


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


反復子?

 反復子なんて言っても、ちんぷんかんぷんです。
 でも、反復とあるから、何か繰り返すのだろうということは分かります。でも、それだけで、十分です。

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

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

一番簡単なサンプル

{配列変数に、値を代入する}
あ#0=「寿司」
あ#1=「天ぷら」
あ#2=「うどん」
あ#3=「牛丼」
{配列の各要素を、それに列挙しながら反復する}
を、反復(
  「客¥「今日{それ}は、美味しい?¥」」を、表示。
この、例だけで、反復子のメリットが理解してもらえれば、よいのですが・・・。
それでは、もうちょっと突っ込んで、実用的な反復子の使い方を見てみましょう。

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

 私は、仕事で、相当多くの「雑用」を、させられています。
 そんな中でも多いのが、文章の各行の空白を取り除くだけだったり、各行に単語が羅列されており、それに番号をふるだけだったり・・・。手作業でやると、ものすごく時間がかかり、面倒な処理が多いのです。ところが、この反復子を使えば、以下の通り!
 たったの数行書くだけで、面倒な仕事が片付いてしまいます。
{ファイルを読んで、各行の空白を取り除き行番号をつけて表示
「himawari.hmw」を、読む。ソースは、それ。
行は、0
ソース反復(
  それの、前後の空白削除。
  「{行}:{それ}」を、表示。
  行は、行+1
)。

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

反復子を使って、貴方の恋人の愛情を試してみましょう!
{恋人の愛情を試すプログラム}

{配列に問題を代入}
テスト#0=「彼(彼女)は、友達を紹介してくれる」
テスト#1=「彼(彼女)と、1週間以上連絡が途絶えたことはない」
テスト#2=「彼(彼女)の携帯を勝手に見ても怒らない」
テスト#3=「彼(彼女)の考えていることが良く分かる」
テスト#4=「彼(彼女)は、貴方の誕生日を覚えている」
テスト#5=「彼(彼女)と、将来のことをよく語る」
テスト#6=「彼(彼女)は、一緒にいるとき、よく笑う」
テスト#7=「喧嘩をしても、すぐ仲直りする」
テスト#8=「彼(彼女)は、デートに遅刻しない」
テスト#9=「彼(彼女)は、貴方に優しい」

{テストのメイン部分}
点数は、0
テストを、
反復

 
 「質問:{それ}」と、二択。
  もし、それならば、点数=点数+1

「点数は、{点数}」と、言う。

もし、点数が、10以上ならば、満点へ、飛ぶ。
もし、点数が、8以上ならば、安心へ、飛ぶ。
もし、点数が、4以上ならば、普通へ、飛ぶ。
違えば、不安へ、飛ぶ。

{結果表示}
*満点
  「満点です!すごい!恋人とラブラブです!」と、言う。
  おわり。

*安心
  「ラブラブですね。このままお幸せに。」と、言う。
  おわり。

*普通
  「普通のカップルです。もっと努力して、彼(彼女)を振り向かせよう!」と、言う。
  おわり。

*不安
  「破局寸前?!二人は大丈夫なの?」と、言う。
  おわり。
ちょっと、長いような気がしますが、実際、友達と、遊んでみたら、かなり面白かったです。
ま、長いと言っても、メイン部分は、たったの数行です。

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


目次へ戻る / 次へ