熊でもわかる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章 条件分岐で状況に合わせた処理を

 リンク
>>>この講座のトップページ
>>>タンクタウンのトップページ