プログラミング コラム

反復の学び方

プログラミングを初めて、最初のハードルは「反復」かもしれません。
処理が繰り返されるイメージが掴めず、無限ループに悩まされ、挫折しそうになることもあるでしょう。
私も初心者の頃は反復でつまずき、なんとか使えるようになるまで数か月かかりました。

しかし、反復はプログラム言語を問わず、品質の高い作品を作るには必須の知識です。

反復の書き方や仕組みは、沢山の書籍やWEBサイトで詳しく解説されていますので、
今回は、少し視点を変えて反復について考えてみたいと思います。

当校の授業では、最初に「while」を紹介します。
反復の記述方法は複数あり、while以外ではfor , do..while が一般的で、近年では foreach や for..in , for..of など、特定の処理に特化した反復処理も登場しています。

しかし、初めのうちに複数の記述方法を知ってしまうと
混乱を招く恐れがあるため、まずはwhileだけに集中して、反復処理そのものに慣れていきます。

極端ですが、whileさえ使えれば大抵の反復処理は可能です。
「〇〇の時はwhile」「××の時はfor」のようにイメージを固定してしまうと、余計に難しく感じてしまいます。
「まずはwhileだけでなんとかなる」と考えると、気が楽になるかもしれません。

whileを使いながら、多重ループとbreak,continueまでをしっかりと練習します。
特に多重ループは難関なので、慌てずゆっくりと習得していきます。

whileに慣れてきたら、最後にforやdo...whileを紹介します。
「なぜ何種類も書き方があるのか?」「whileとforはどのように使い分けるべきか?」を中心にお話しします。


最後に「反復の理解」について考えてみます。

私の講師経験上、反復の理解を妨げているものは「めんどくさい」だと感じています。
変数は値を保存するために必ず使いますし、分岐を使わずに開発することは至難の業でしょう。

ところが反復は、極端に考えれば同じことを必要な回数書いてしまえば、反復処理を理解していなくても実現できます。
「難しい反復を理解するより、コピペしたほうが楽」と、つい妥協してしまいます。
私もどうしても反復処理が理解できず、同じことを繰り返し書いていたこともありました。それぐらい、反復を使いこなすことは難しいと思います。

しかし、数回の処理であればコピペでなんとかなるかもしれませんが、実務で求められるような作品になると、
同様の処理を数千回、数万回繰り返すことは当たり前になってきます。

その時、反復を理解していなければ、途方もない苦労をすることになるでしょう。

反復を理解し、自分のものにするには、まず初めに「慣れる」ことが重要です。
とにかく単純な反復でも、自分では理解していると思っていても、書いて、動かしてを繰り返します。

そして、ここからが本番です。

反復は書き方や仕組みを理解していても、使いこなすのは難しいです。

それは、反復処理には「規則性」が必要になるからです。
前述のforeachなどは例外ですが、一般的な反復は変数と組み合わせて「〇〇の値が××以下の間」など、継続条件を指定します。

いくら書き方を覚えていても、求められた処理の規則性を見出せなければコードとして書くことができません。

この「規則を見つける力」こそが、反復の理解につながると思います。
一朝一夕に身につくものではありませんが、「書き方だけ暗記してもダメなんだ」と意識して練習するだけでも効果があります。

難しくて投げ出したくなることも、続けていれば必ず報われる瞬間がやってきます。
「ここはコピペでいいか...」の悪魔のささやきに負けないようになりたいですね。
written by Tomoji Onishi / 2022.10.24
コラム一覧