2重ループの正体を理解するための基本
データの照合(突合せ)では避けて通れない「2重ループ処理」について、
ちょっとその基本を学んで置きたいと思います。
まず、前回もやったシート間のデータの”1対多”での照合では、ループの基本形として
For i = 1 To 10
ある処理
Next i
これは、すなわち「1重のループ処理」です。
なので、今回勉強する「2重ループ処理」というものは、
For j = 1 To 10
データ設定
For i = 1 To 10
ある処理
Next i
Next j
と、このような形になります。
今回わかりやすく、これを新たに「2重ループの基本形」と定めて、
以降の解説を行っていくことにしたいと思います。
さて、ここでちょっと問題です!
この「2重ループの基本形」を実行すると、「ある処理」にあたる部分は
計何回実行されることになるでしょうか?
・
・
・
答えは、ずばり100回です。
お解かりになりましたか?
単純に、10×10なので、イコール100回となります。
10×2なので20回!と答えてしまった人はいませんでしたか!?
実は、ここが2重ループの重要なポイントです。
詳しく解説しますと、
まず、外側のループで j=1 の時に、内側のループでは i が1から10まで
10回繰り返し「ある処理」を行ないます。
次に、外側のループで j=2 の時に、内側のループでは i が1から10まで
10回繰り返し「ある処理」を行ないます。
(呼び名として、i の方のループのことを「内側のループ」 j の方のループ
のことを「外側のループ」と一般的に呼んでいます。)
以下同様に、j=10 まで行ないます。
なので、「ある処理」は10×10回実行されることになります。
で、これは何に応用されるのか?といいますと、”多対多”のデータ照合に
です。
”1対1”のデータ照合であれば、ループは必要ありません。
”1対多”のデータ照合であれば、ループは1つ必要です。
よって、
”多対多”のデータ照合であれば、ループは必ず2つ必要となる。
というわけで、これがデータ照合での2重ループの正体です。
NEXT >>
・ループ処理の基本形
・データのある最後の行までループさせる方法
・For文とDo文の使い分けについて