”ループ処理” を理解しよう(第6回:「パパ・ママ」プログラミング講座)

タイトル画像_パパママ講座_第6回 お父さんお母さんプログラミング講座

前回は、プログラミングで非常に重要な ”変数” について解説しました。

今回取り上げる ループ処理 も非常に重要であり、必ず使うことになる処理方法です。

ループ処理は、繰り返し処理のことであり非常に基本的で単純な処理なのですが

  • プログラミング未経験の人は「初めて聞いた!難しそう、、」
  • 少し経験のある方は「知ってるけど、ちょっとややこしい

と思われる人も多いかと思います。

実際、この講座の目的でもある ”子どもに教えられるようになる” という観点で見た場合

ループ処理は子供がつまづきやすいポイントのひとつ、と言えます。

逆に言うと、ループ処理をマスターできれば

プログラミング技術が1ステップ上達できます!

私は全くの素人から独学でプログラミングを習得したのですが

私がややこしく感じた点は「ループ処理と一括りにされているけど、実は特性や使いどころが違ういくつかの種類がある」という所で

今回はこのあたりを説明しながら、初心者の方でも子供に説明できるようになっていただきたいと思います。

こんな人に
  • 前回で、変数について理解できたので、さらにプログラミングについて理解を深めたい人
  • 子供がプログラミング勉強してるので、ループ処理を教えてあげたい!という人
この記事を読むと
  • ループ処理の種類とその使いどころを知ることができる
  • 子供に、ループ処理について説明ができるようになる

ループ処理って何?

Question

ループ処理は、何回も繰り返す処理のこと

ループ処理繰り返し処理と言うこともあります

この記事では呼び方を「ループ処理」に統一して書きます

その名の通り、何回も同じような事を繰り返す処理の事です。

何回も書くと大変なので使います

ループ処理をなぜ使うか?というと

「同じような処理(プログラム)を何回も書くのは大変だから」です。

この記事の後半の、実際にループ処理を使ってみるところで

何回も書くと大変な具体例をお見せします。

なので、基本的に同じ処理を2回以上やる場合はループ処理を使うと思っておけば良いです。

ループ処理は 3つの種類 を覚えよう

覚えよう

ループ処理は実は1種類ではなくいくつかの種類があるのです。

これが初心者にはややこしいポイントだと思っています。

これは、どっち使ったら良いの?

と私はなりました。

逆に言うと、この種類の違いさえ把握しておけば、ループ処理は怖くありません!

ではここからは、そのループ処理の3つの種類を説明していきます。

※この種類分けは筆者独自のものです、ご注意ください。

その1:〇〇回繰り返す

ひとつめの種類は

何回繰り返すか、回数を決めるタイプです。

for文などと呼ばれることが多いかもしれません。

Scratchだと下図のブロックがこのタイプです

スクラッチ_forブロック

あらかじめ何回繰り返すか分かる場合に使用する

このタイプは、ループ処理のスタート時に何回繰り返すか決められる場合に使います。

この回数については、必ずしもプログラムを作る時に決めておかなくても良くて、例えば操作する人に何回繰り返すか入力してもらっても良いわけです。

  • 1週間分の処理をしたいので7回繰り返す
  • チームメンバーの名前入力を5人分繰り返す

その2:××という条件を満たすまで繰り返す

ふたつめの種類は

ある指定した条件が満たされるまで繰り返すタイプです。

while文などと呼ばれることが多いかもしれません。

Scratchだと下図のブロックがこのタイプです

あらかじめ回数が決められない場合に使う

このタイプは1つめとは逆に、ループ処理のスタート時に何回繰り返すか決められない場合に使います。

回数を決められない時ってどんな時かというと

ある一定の数になった時に繰り返しを止めたいが、毎回どれだけ数が変動するか分からない場合や

突発的に起こる特定の状況の時だけ処理を止めたい場合などです。

  • 商品の値段を入力していき、合計金額が10000円以上になったら止める
  • クイズゲームで、不正解になるまで出題を繰り返す

その3:要素ひとつずつ順番に処理を繰り返す

みっつめの種類は

配列などに入っている要素ひとつずつ順番に処理を繰り返すタイプです。

for each文などと呼ばれることが多いかもしれません。

ここで配列という新たな言葉が出てきましたが
この3つめのタイプは、配列などを知っていないと分かりにくいので
最初は理解しなくてOKです(Scratchでもこのタイプのループ処理は無いです)
配列についてはまた別の回で説明します。

配列などに格納されているものに処理したい場合はこれを使う

ここでは配列の詳しい説明はしませんが、簡単に言うと配列とは複数のモノが連なって入っている入れ物のようなものです。

このタイプは、それら複数のモノ(要素)をひとつずつ取り出して処理するときに使用します。

ループ処理を実際に使ってみよう

今回もScrach(スクラッチ)を使って、実際にループ処理を体験してみたいと思います。

前回作成した「BMI計算プログラム」を使って説明していきます。
(ご覧になってない方は、先にこちら↓を見ていただくと理解しやすいです)

やりたいこと

前回は1回だけBMI計算のやりとりをしていたが

今回は5回繰り返すことで、5人のひとに対してやりとりできるように変更します。

先ほど説明した3種類のループ処理のうち
その1:〇〇回繰り返す に該当します。

ループ処理を使わないと、、

まず、もしループ処理を使わずにやろうとしたらどうなるか?を考えてみます。

前回作った ”BMIプログラム” を単純に5回重ねて繰り返すと、下図のようになります。

いかがでしょうか? ブロックだらけになってしまいましたね、、

ループ処理を使わないと、以下のような問題があります

  • プログラムを書く量が増える
  • プログラムが見にくくなる
  • プログラムの修正が大変

書く量が増える

当たり前ですが、単純にプログラムを書く量が増えます。

5回くらいならまだ我慢できても、これが100回 1000回などになった時の事を考えると、、現実的ではないですよね

プログラムが見にくい

プログラムの量が増えると、プログラムが見にくく(読みにくく、把握しにくく)なります。

「今見ているのは何回目の処理だったかな?」ということさえ分からなくなるでしょう

修正が大変

量が多いということは、修正するときも大変になります。

例えば、すでに100回同じ処理を書いて繰り返すプログラムを書いていて

身長・体重に加えて ”腹囲” も聞くようにしようということになったらどうでしょう?

考えるだけで頭がイタイですよね、、

【結論】ループ処理を使いましょう!

ループ処理を使わずに、何回も同じ処理を書くのは良くない、ということ理解していただけたでしょうか?

なので、同じ処理を繰り返す時はループ処理を使いましょう

ループ処理ったプログラムを書こう

ではようやく、ループ処理を使ったプログラムを書いていきましょう

前回作成した下図の状態から始めます。

ループ処理ブロック追加

初期状態で 10回繰り返す になっているのを 5回 に変更しましょう。

ループ処理ブロックの中に処理を入れる

次に、ループ処理ブロックの中に、BMI計算の一連のブロック一式を入れ込みます。

下図のようなイメージですね。

現状「🏴が押されたとき」ブロックとくっついているので、取り外す必要があります。

ブロックを取り外す方法は、取り外す箇所の ”下のほうのブロック” をクリックしてドラッグさせれば取り外すことができます(下図に示したあたりです)。

取り外したブロック一式をループ処理ブロックの上に持っていって離すと、中に入ります。

最後に「🏴が押されたとき」ブロックとくっつけて完成させます。

作ったプログラムを動かしてみる

ちゃんと繰り返しされるかを、プログラムを動かして確認してみたいと思います。

🏴 ボタンを押してスタートさせましょう。

身長・体重を入力すると、BMIを計算して表示した後、また身長の入力が繰り返されると思います。

ちゃんとループ処理ができてますね!

ループ処理の使い方、何となく分かっていただけたでしょうか

ループ処理ブロックを一つ追加するだけなので簡単ですね。

出来上がったプログラムも、5回分重ねて作る場合に比べて、スッキリして見やすいと思いませんか。

まとめ

今回はループ処理について解説しました。

ループ処理はプログラミングの中で良く出てきますし、使えるととても便利ですので

ぜひ覚えて、お子さんに説明してあげてください!

まとめ
  • ループ処理は、同じような事を何回も繰り返す処理のこと。
  • ループ処理には3つの種類がある
    1. 回数を決めて繰り返すタイプ
    2. 指定した条件が満たされるまで繰り返すタイプ
    3. 配列などの要素ひとつずつ順番に処理を繰り返すタイプ

次回は、条件文について説明しようかと思っています。

次: ”条件文(if文)” を理解しよう(第7回:「パパ・ママ」プログラミング講座)

お子さまのプログラミング教育をお考えの方

私は子供のプログラミング教育はスクールなどは利用せず家庭でやっています
皆さんにもぜひ、当ブログを通じてプログラミングのことを知っていただき
お子さまと一緒にプログラミングを楽しく学んでいっていただきたいと思っておりますが

やはりスクールで学んで欲しい、という保護者の方には
自宅から受講できる、オンラインスクールから始めてみるのが良いかもしれません。

まずは、無料体験でお子さまに合いそうか判断されるのをおススメします。

コメント

タイトルとURLをコピーしました