# 何回も繰り返す

> 例えば、「ワン」と、１０回吠えたい

> 我が家の愛犬『コロ』 趣味：しっぽ回し | そう、人間、時には、犬にでもなって、〜ワンワン吠えているだけの〜、そんな気楽な存在になりたいと、思ったことがあるかもしれません。しかし、実際、ワンワン吠えるだけでは、空しいのです。 （犬だって、理由がなければ吠えません！） 意味もなく、自分で吠えるのも、なんですので、ひまわりに、吠えさせて、「ワンワン」ほえるだけの存在が、どれだけ空しいか体感してみましょう。

> ひまわりで、「ワン」と、１０回表示するには、以下のようにします。

> １０回、「ワン」と、表示。

> 実行させてみましたか？
> ・・・
> ワン
> ワン
> ワン
> ワン
> ワン
> ワン
> ワン
> ワン
> ワン
> ワン
> ・・・やっぱり、空しいですよね。

> 一目瞭然ですが、何かを繰り返すには

> ？回、（命令）。

> という、書式で、文を書きます。

> さてさて、上のプログラムが、なぜ、空しいのか考えてみると、一度表示して、それ以後、動きがないから、空しいんです。

> そこで、吠えるにしても、時間差をつけて、吠えることにしましょう。

> `１０回（「ワン」と、表示。１秒、待つ。）。`

> | これは、ワンと表示して、１秒待って、再び、ワン・・・という具合に動きます。 ・・・いや、これでも、十分むなしい・・・どうしたら、この心の隙間を埋めることができるのだろう？・・・

> 空しいのは、置いておいて、一番目のプログラムと違うのは、１０回の後に、丸カッコ（）があることです。これは、カッコの中を、１０回実行します！という意味になります。
> では、最後の手段。色と、音を、付けてみましょう！

> `文字サイズ＝１６。’文字の大きさを１６に変更 文字色＝茶色。’色は犬っぽさを強調して茶色なんてどうでしょう １０回（ 「ワン」と、表示。 ランタイムのパス＆『tools\to.wav』を、演奏。｛←音声ファイルの再生｝ １秒、待つ。 ）。`

> 回数の後に（・・・）を書くのは同じなんですが、繰り返したい内容が長いので、複数行にわたって記述しています。
> （・・・）の内容を、複数行にかけて、書く場合には、上の例のように、タブか、スペースで、インデントしておくと、（）の範囲が見やすくなります。

> | どうでしょうか？色や音が付くとやっぱり、少し、色気が出ますよね。 ただ、根本的なことなんですけど、ワンワン吠えるだけなんて・・・。 お気楽なのはいいんですが、でもやっぱり、犬では、パソコンのキー叩けないし・・・。 美味しいもの食べに行けなし・・・。

> １＋２＋３＋４＋５＋６＋７＋８・・・・は？

> さて、実際、この繰り返しを、何に使うのか？ということですが、小学生の頃に、友人たちから、「１＋２＋３＋４＋５＋６＋７＋８＋９・・・」で、『１００まで足したら、何になる？』なんて、クイズ出されて、ムキになって計算した思い出はないでしょうか？

> | （回想モード） そう、あれは、懐かしい学生時代の思い出・・・ ある日、私たちの仲良しグループで、『小学生最大の謎（１から１００まで足すといくつか？）』に終止符を打とうじゃないか！ということになりました。 それで、早くしかも正確な答えを出したものには、クラスのマドンナ「みよちゃん」に、チュッってしてもらえる！（たぶん、というか、ぜったいに、本人の意思はそっちのけ）の、賞品がついたから、たまらない！！（誰がそんな破廉恥なこと思いついたんだろう？） 算数の好き嫌いに関わらず、みんな、異様な盛り上がりの中で、計算しはじめました。 しかし、いざ、頑張って計算してみたところ・・・。みんな答えがバラバラ。一体誰が正しいのか？一番早かったのは、ソロバン得意のAくんだが、算数の成績が良いBくんの答えは、信頼性があるけれど、ガキ大将の、C坊は・・・みんな自分が正しいと言い張って、結局喧嘩になりました ・・・

> さて、そんなときに活躍するのが、ひまわりです。（えっ本当？）

> `答え＝０ 足す数＝１ １００回（ 答え＝答え＋足す数 足す数＝足す数＋１ ） 答えと、言う。`

> これで、１から１００までの数を足した数を求めています。
> （あの時、ひまわりが、手元にあったなら、あんなに喧嘩しなくてすんだのに・・・）

> > マメ知識：
> > 皆さん、ご存知の方が多いと思いますが、方程式でも解くことも出来ます。

> > 初め＝１ 終り＝１００ 個数＝終り−初め＋１ 答え＝個数×個数÷２＋個数÷２ 答えと、言う。

> > こちらを使う方が、インテリっぽいですよね？でも、かっこつけて公式を使って解いて、間違っていると、余計に恥ずかしいので、注意しましょうね。

## 応用編

> それから、カッコを、ネスト（重ねる）することで、複雑な繰り返し文も記述できます。

> `｛多重繰り返しの例：赤と青の丸を１００個描く｝ a = 0; { ; を書くのと、「。」は、同じ意味です。} １０回（ b = 0; １０回（ {色の決定} c = (b + a) % 2; { % は、割り算の余りを求める演算子です。} (c = 0)?ならば、塗り色は、赤色。違えば、塗り色は、青色。 {円の描画} (a × 30, b × 30)から、(a×30 + 29, b×30 + 29)へ、円形。 b=b+1; ）。 a=a+1; ） 。`

> →実行結果
> ・・・赤と青の丸を、交互に、１０＊１０＝１００個描くというプログラムです。このような幾何学模様を描くプログラムが、面白いかどうかというのは、好みの問題ですが、私は、プログラムによって、幾何学模様を描くのが好きです。

## 行とインデントと、一文。

> （）で囲むとき

> 上の例で、

> ５回（ ｛何かの処理｝ ）。

> と、あるように、（）で、括るときには、上のように、処理をインデントした方が見やすくなります。
> このインデントは、特に、強制ではありませんので、

> ５回（｛何かの処理｝）。

> と、書いても良いです。ですが、しかし・・・

> | 先輩からのアドバイス： とにかく、プログラムは、ややこしくなりがちなので、常に、「なんとしても、出来る限り見やすく」書いていくのがポイントです。 多少、手間がかかっても、後になって、修正する時のこと(*1)を考えれば、見やすく書いておくべきです。かくいう私も、しばしば、そういう場面に直面し、「ああ、もっと見やすく書いておけばよかった！」と、後悔する羽目になるのです。 (*1)こんなの、その場限り、二度と使わないだろうと、汚く書いたプログラムにかぎって、また使う必要が出てくるものです！

> ひまわりの一文

> ひまわりの、一文は、「。」、か、行末（改行）までと、なっています。文末まで読むと、ひまわりは、その文法が正しいかどうかを、チェックします。

> 「あ」と、表示。「い」と、表示。「う」と、表示。「え」と、表示。「お」と、表示。・・・

> と、書いても、問題なく実行されますが、各命令ごとに、改行した方が、タイプミスを発見しやすいので、

> 「あ」と、表示 「い」と、表示 「う」と、表示

> と、書いていく方法を、お勧めします。
> また、文と、文を、「○○して」という形でつなげて、

> 「あ」と、表示して、 「い」と、表示して、 「う」と、表示。

> と、書いても同じ意味です。

目次へ戻る／次へ