SE道場 - 探索の極意(1) |     ✤ We Love Softbrain ✤ 

    ✤ We Love Softbrain ✤ 

        日々の仕事や、プライベートな趣味まで掲載しています。

image

 

皆さん、こんばんはビックリマーク

シニアAですクローバー

 

今日は、探索ループの極意をお話ししましょうビックリマーク

 

探索は、対象となる集団の中から条件に合う要素を探し出すことです。普通の探索ロジックはC言語で表すと次図の通りですひらめき電球

 

  

for文は、Loop変数を0からMaxCount未満の間、ループを繰り返すという意味です。そして、if文は、『条件に合った要素かどうか?』という意味です。

 

このif文で条件を満たした場合は、return FOUNDで『見つけた』と返します。見つからなかった場合は、return NOTFOUNDで『見つからなかった』と返します。

  

さて、ここからが本番です!! もし本関数内で見つけた後の処理がある場合、多くの人は次のようにコーディングします。(探索の極意なし)

  

見つけた後の処理は、return FOUND行の前に書きますよね。上記の例ではまだ見やすいかもしれませんが、ここはfor文内の、if文の中ですので、長い後処理は禁物ですよビックリマーク

 

私だったら、見つかったルート(正常ルート)を関数の終わりに持ってきますビックリマーク前回やった『正常ルートの在り方』です。C言語で表すと次図の通りです。(探索の極意あり)

 

 

これは、見つかった時にbreak命令でループを中断させるのがポイントですひらめき電球 

 

見つかった場合も、見つからなかった場合も、ループを終了してくるため、for文の次のif文で、『見つからなかったか?』と聞き、条件を満たせば見つからないルートで終了(エラールート)させます。

この時の条件は、ループ脱出条件(『ループ継続条件』の逆論理)です。

 

もっともっと後処理が増えたりしても、こうすることで、後の処理がきれいにコーディングできます!!

 

次回は、2重ループの条件探索をやってみましょうビックリマーク

 


SE道場では、プログラミングの極意や開発の苦労話等、様々な記事を投稿していますビックリマーク是非ご覧くださいクローバー
 

 

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