皆さん、こんばんは
シニアAです
今日は、探索ループの極意をお話ししましょう
探索は、対象となる集団の中から条件に合う要素を探し出すことです。普通の探索ロジックはC言語で表すと次図の通りです
for文は、Loop変数を0からMaxCount未満の間、ループを繰り返すという意味です。そして、if文は、『条件に合った要素かどうか?』という意味です。
このif文で条件を満たした場合は、return FOUNDで『見つけた』と返します。見つからなかった場合は、return NOTFOUNDで『見つからなかった』と返します。
さて、ここからが本番です もし本関数内で見つけた後の処理がある場合、多くの人は次のようにコーディングします。(探索の極意なし)
見つけた後の処理は、return FOUND行の前に書きますよね。上記の例ではまだ見やすいかもしれませんが、ここはfor文内の、if文の中ですので、長い後処理は禁物ですよ
私だったら、見つかったルート(正常ルート)を関数の終わりに持ってきます前回やった『正常ルートの在り方』です。C言語で表すと次図の通りです。(探索の極意あり)
これは、見つかった時にbreak命令でループを中断させるのがポイントです
見つかった場合も、見つからなかった場合も、ループを終了してくるため、for文の次のif文で、『見つからなかったか?』と聞き、条件を満たせば見つからないルートで終了(エラールート)させます。
この時の条件は、ループ脱出条件(『ループ継続条件』の逆論理)です。
もっともっと後処理が増えたりしても、こうすることで、後の処理がきれいにコーディングできます
次回は、2重ループの条件探索をやってみましょう
SE道場では、プログラミングの極意や開発の苦労話等、様々な記事を投稿しています
是非ご覧ください


1つ前の開発秘話は...