皆さん、こんにちは
シニアAです


今日は、探索ループの極意(2)『2重ループの条件探索』をお話ししましょう

探索の対象が2つあり、条件がそれぞれ指定された場合、探索ループが2重になるのが普通です。
つまり、正常ルートがfor文やif文の中にあると、後々解析しづらくなるからです

それでは、正常ルートを関数の最後にしてみましょう

さてここからが探索の極意です

見つかった場合に、break文でループを抜けても、まだ外側のループの中にいます。
だから外側のループを抜けるif文が必要です。
①に注目してください。
見つかった場合にLoop2<Max2のままでbreakされ、外側のループ内のif文判定となります。
だからここは、Loop2<Max2であれば見つかった、Loop2≧Max2であれば見つからなかった、と判定できるのです。
②に注目してください。
見つかった場合に①で外側のループを抜けてきます。
Loop2同様、Loop1<Max1であれば見つかった、Loop1≧Max1であれば見つからなかった、と判定できます。
Loop2同様、Loop1<Max1であれば見つかった、Loop1≧Max1であれば見つからなかった、と判定できます。
このループカウンタで判断できるという発想が『極意』なのです

慣れてくれば楽勝ですよ

また『FindFlag』の様な変数を増やしてコーディングすることもできますが、変数は少ないほど解析が用意となります。常に後のメンテナンスのし易さを考えていけるといいですね

次回もお楽しみに・・・
SE道場では、プログラミングの極意や開発の苦労話等、様々な記事を投稿しています
是非ご覧ください


1つ前の極意ネタは...