熊でもわかるRGSS講座 超初級編
<<前の章へ 第5章 ループで繰り返し処理 次の章へ>>
さて、今日は、ループについてじゃ。 |
うん。 |
ループは、繰り返し処理をするときに使う。第2章でもやったな。 |
うん。 |
あれは、loop do 〜 end という形式のループじゃった。こんな感じじゃの。 |
7 8 9 10 11 |
loop do # ループの開始 p "繰り返し" # 繰り返し実行される処理 end # ループの終わり |
loop do 〜 end は、loop do と end の間の行を、何度でも永遠に繰り返す命令じゃ。 |
え、ホンマ? ホンマに永遠になんか? |
そりゃ、プログラムを終了すれば、止まるがのう。終了もせず、パソコンが動き続けているなら、何年でも繰り返しっぱなしじゃ。 |
ほう・・・。 |
ためしに動かしてみるとよい。ただし、困ったことになるから、今のうちに対処方法を教えておくぞ。 |
なに? 困ったことって? |
これを実行すると、"繰り返し"というメッセージボックスが、永遠に表示され続けるから、ウィンドウを閉じることも出来んようになる。 |
そら、困るな・・・。 |
そういう場合は、ファンクションキーの12番(F12)を押しながら、メッセージボックスのOKボタンをクリックするんじゃ。そうすると、次のメッセージボックスは、表示されんようになる。そのまま、Xボタンをクリックして、ウィンドウを閉じればよい。 |
分かった。なら、やってみるで・・・。スクリプトエディタを開いてと・・・セクション『Main』に書けばええな。 |
ほんまや。OK押しても、ずーっと表示され続けるで・・・。 |
F12じゃ。 |
うん、F12を押しっぱなしにしてと・・・。お、消えた。で、閉じる・・・と。おっしゃ、閉じれたで。 |
うむ。このループは、もっともシンプルな構造のループで、よく使うからしっかり覚えておくんじゃ。 |
うん。 |
では、次のループに言ってみようかの。次は、for 〜 in 〜 end じゃ。これもよく使うのう。 |
7 8 9 10 11 |
begin for i in 1..5 # ループの開始 p i # 繰り返し実行される処理 end # ループの終わり |
これは、繰り返す範囲を指定できる形式じゃ。1..5というのが、その指定じゃな。この場合、1から5まで繰り返す、という意味になる。 |
この .. は、なに? ちっちゃくてよう分からんけど。 |
ピリオド2つじゃ。ここからここまで、という範囲を表す符号じゃ。 |
ふーん。1から5まで言うことは、5回繰り返す言うことなん? |
そうなるのう。 |
i は、なんなんや? なんか、pで表示させてるけど・・・。 |
これは、範囲指定した値が順番に入る変数じゃ。この場合、1から5までという範囲指定じゃから、1回目のループの時には、i という変数に1が入る。2回目のの時には、iに2が入る。3回目は3、4回目は4、5回目は5が入る。そして、ループ終了じゃ。 |
ちゅうことは、最初は、p i のとこで1って表示されて、2回目は2って表示されて・・・ってなるんか? |
そういうことじゃ。実際にやって確認してみい。 |
ほんまや。ちゃんとなったで。 |
うむ。この変数は、iでなくても、なんでもよいぞ。適当な名前をつければよい。 |
うん、そやけど、なんでわざわざこんなことになっとんの? 繰り返すだけやったら、こんなんいらんのに。 |
ふむ、まあその方が便利だからじゃな。 |
どんなとこが? |
範囲を指定して、繰り返し処理をする場合、その範囲の値を利用して何かをすることが多いんじゃ。例えば単純な例じゃがこんなのは、どうじゃ? |
7 8 9 10 11 12 |
begin n = 0 # 準備のために変数nに0を代入 for i in 1..10 # 1から10の範囲を繰り返し n += i # 変数nに、変数iの値を加算 end p n # nの値を表示 |
ええと・・・まず、nに0が入って、それからnにiが加算されるんか。最初はiは1やから、nが1になって、2回目はiが2やから、1+2で3になって・・・あれ? これってもしかして、1から10までの数字を順番に足していってるんやな・・・。 |
そのとおりじゃ。1から10までの数字を全部足すといくつになるか、という問題を解くプログラムじゃな。 |
なるほど。確か答えは、55やな。 |
では、実際にやって、確認してみるがいい。 |
おお、ちゃんと出たで。 |
では、次は1から100までの数字を全部足すといくつになるか、やってみい。 |
うーんと、こんでええのかな? |
7 8 9 10 11 12 |
begin n = 0 for i in 1..100 n += i end p n |
正解じゃ。 |
なるほど、これやったら、1000でも10000でも、簡単にできるな。 |
うむ。コンピュータは、人間と違って計算を間違わんし、何万回でも文句も言わずに計算する。つまり、こういう繰り返し処理が大の得意なんじゃ。 |
なるほどな・・・。 |
さて、ループは、このくらいにしておくかの。本当は、もっと色々あるんじゃが、最初からたくさん教えても覚え切れんからのう。 |
うん。 |
明日は条件分岐じゃ。条件分岐を覚えるとかなり、プログラムっぽいことができるぞ。 |
うん。ほな、また明日な。 |
本日のおさらい ・loop do 〜 endで、永遠に繰り返し ・for 〜 in 〜 endで、指定範囲の繰り返し 次の章は 第6章 条件分岐で状況に合わせた処理を リンク >>>この講座のトップページ >>>タンクタウンのトップページ |