Column
反復の学び方

プログラミングを初めて、最初のハードルは「反復」かもしれません。 処理が繰り返されるイメージが掴めず、無限ループに悩まされ、挫折しそうになることもあるでしょう。 私も初心者の頃は反復でつまずき、なんとか使えるようになるまで数か月かかりました。
しかし、反復はプログラム言語を問わず、品質の高い作品を作るには必須の知識です。
反復の書き方や仕組みは、沢山の書籍や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などは例外ですが、一般的な反復は変数と組み合わせて「〇〇の値が××以下の間」など、継続条件を指定します。
いくら書き方を覚えていても、求められた処理の規則性を見出せなければコードとして書くことができません。
この「規則を見つける力」こそが、反復の理解につながると思います。 一朝一夕に身につくものではありませんが、「書き方だけ暗記してもダメなんだ」と意識して練習するだけでも効果があります。
難しくて投げ出したくなることも、続けていれば必ず報われる瞬間がやってきます。 「ここはコピペでいいか…」の悪魔のささやきに負けないようになりたいですね。