こんにちは!
フリーランスエンジニアのかたやまです。
今回は、プログラミングの基本ルール「順次・分岐・反復」のうち、「反復」を分かりやすく解説します。
反復ってなに?
反復とは、「処理を繰り返すこと」です。
これだけでは具体的にイメージしづらいと思うので、曜日を例に考えてみましょう。
一週間は以下のように7種類の曜日が続きます。
月 → 火→ 水→ 木→ 金 → 土 → 日
月曜日から日曜日まで終わったら、また月曜日から順に繰り返されます。このように、あらかじめ決めった処理を繰り返すことが反復です。
反復では、「なにを繰り返すのか」と「いつまで繰り返すのか」の2つを考える必要があります。
先ほどの曜日の例の場合は、以下のように分けることができます。
【なにを繰り返すのか】月 → 火→ 水→ 木→ 金 → 土 → 日
【いつまで繰り返すのか】終わりなく繰り返す
曜日の場合、いつまで繰り返せば終わりという条件はありません。このようにある処理を終わりなく繰り返すことを「無限ループ」と呼びます。
「反復」で意識すべき3つのポイント
反復について、意識すべきことは3つあります。
1.反復する処理が間違っていないか
反復する処理が間違っていた場合、やりたいことが実現できないことがあります。
例えば、花に水やりをする場合を考えてみましょう。
【なにを繰り返すのか】①ひまわりに水を100mlあげる → ②1分待つ
【いつまで繰り返すのか】花が咲くまで
この条件で反復を行った場合、1分ごとに水をあげることになるので、水のやりすぎで花は咲かず枯れてしまいます。「なにを繰り返すのか」で繰り返す行動が適切でない場合は、反復しても目的を達成することができません。
このように反復する処理が間違っていないかどうかについても意識する必要があります。
2.反復を終了する条件が誤っていないか
反復を終了する条件が誤っている場合でも、やるべき目的を達成できないことがあります。
例えば、学校の子ども全員にお菓子を配る場合を考えてみましょう。
【なにを繰り返すのか】①お菓子をもっていない子どもを見つける → ②お菓子を渡す
【いつまで繰り返すのか】100回繰り返して終了する
この条件で反復を行った場合、学校の子ども全員にお菓子を配ることができるでしょうか?答えは「子どもが100人以下ならできる、100人より多い場合はできない」です。いつまで繰り返すかの条件が適切でない場合は、反復しても目的を達成することができません。
このように反復を終了する条件が間違っていないかどうかについても意識する必要があります。
3.無限ループになっていないか
無限ループになっていないかどうかも意識する必要があります。
例えば、貯金をする場合を考えてみましょう。
【なにを繰り返すのか】①100円稼ぐ → ②すぐに100円使う
【いつまで繰り返すのか】1000円貯金できたら終了する
この条件で反復を行った場合、お金は一向に貯まらず「いつまで繰り返すのか」の条件(1000円)に到達することは決してありません。このように目的を達成できず、同じことを永遠に繰り返すことを無限ループと呼びます。
無限ループになっていないかどうかについても意識する必要があります。
簡単な例だったため、少し物足りなさがあったかもしれませんが、プログラミングをやっていく上で重要な考え方です。「いつの間にか無限ループになっていた」といったことは、意外と頻繁に起こることがあるので注意が必要です。もちろん、意図して無限ループにしたい場合はOKです。
まとめ
プログラミングの基本ルール「反復」の解説は以上です。反復は「なにを繰り返すのか」と「いつまで繰り返すのか」のセットと理解できればOKです。
パソコンの仕事をしている時に、「同じ作業を繰り返しているな」と感じたら、その反復作業をプログラミングで自動化できるチャンスです!日常でも意識してみてください。
では、また次回!