配列変数の全ての要素へ、簡単アクセス!
反復子?
反復子なんて言っても、ちんぷんかんぷんです。
でも、反復とあるから、何か繰り返すのだろうということは分かります。でも、それだけで、十分です。
かっこいいその手の本(プログラムの専門書)では、イテレーターなんて呼び方がされています。
書式: {配列変数}を、反復( {命令文} )。
以下は、「反復」の動作です。
- 配列変数の要素の数を得る
- 0番の要素から、最大の要素まで、配列の要素の数だけ、命令文を繰り返す
- 命令を繰り返すときに、特殊変数「それ」へ、配列の値を、代入する
一番簡単なサンプル
この、例だけで、反復子のメリットが理解してもらえれば、よいのですが・・・。
{配列変数に、値を代入する}
あ#0=「寿司」
あ#1=「天ぷら」
あ#2=「うどん」
あ#3=「牛丼」
{配列の各要素を、それに列挙しながら反復する}
あを、反復(
「客¥「今日{それ}は、美味しい?¥」」を、表示。
)。
それでは、もうちょっと突っ込んで、実用的な反復子の使い方を見てみましょう。
もっと、実用的なサンプル
私は、仕事で、相当多くの「雑用」を、させられています。
そんな中でも多いのが、文章の各行の空白を取り除くだけだったり、各行に単語が羅列されており、それに番号をふるだけだったり・・・。手作業でやると、ものすごく時間がかかり、面倒な処理が多いのです。ところが、この反復子を使えば、以下の通り!
たったの数行書くだけで、面倒な仕事が片付いてしまいます。
{ファイルを読んで、各行の空白を取り除き行番号をつけて表示}
「himawari.hmw」を、読む。ソースは、それ。
行は、0
ソースを、反復(
それの、前後の空白削除。
「{行}:{それ}」を、表示。
行は、行+1
)。
もっと、乙女チックなサンプル
反復子を使って、貴方の恋人の愛情を試してみましょう!
ちょっと、長いような気がしますが、実際、友達と、遊んでみたら、かなり面白かったです。
{恋人の愛情を試すプログラム}
{配列に問題を代入}
テスト#0=「彼(彼女)は、友達を紹介してくれる」
テスト#1=「彼(彼女)と、1週間以上連絡が途絶えたことはない」
テスト#2=「彼(彼女)の携帯を勝手に見ても怒らない」
テスト#3=「彼(彼女)の考えていることが良く分かる」
テスト#4=「彼(彼女)は、貴方の誕生日を覚えている」
テスト#5=「彼(彼女)と、将来のことをよく語る」
テスト#6=「彼(彼女)は、一緒にいるとき、よく笑う」
テスト#7=「喧嘩をしても、すぐ仲直りする」
テスト#8=「彼(彼女)は、デートに遅刻しない」
テスト#9=「彼(彼女)は、貴方に優しい」
{テストのメイン部分}
点数は、0
テストを、反復
(
「質問:{それ}」と、二択。
もし、それならば、点数=点数+1
)。
「点数は、{点数}」と、言う。
もし、点数が、10以上ならば、満点へ、飛ぶ。
もし、点数が、8以上ならば、安心へ、飛ぶ。
もし、点数が、4以上ならば、普通へ、飛ぶ。
違えば、不安へ、飛ぶ。
{結果表示}
*満点
「満点です!すごい!恋人とラブラブです!」と、言う。
おわり。
*安心
「ラブラブですね。このままお幸せに。」と、言う。
おわり。
*普通
「普通のカップルです。もっと努力して、彼(彼女)を振り向かせよう!」と、言う。
おわり。
*不安
「破局寸前?!二人は大丈夫なの?」と、言う。
おわり。
ま、長いと言っても、メイン部分は、たったの数行です。
応用編:単語帳を作ろう!も、参考に。