二重ループ
ごめんなさい、今日もコンピュータ講座です(笑)
個人的なメモとしても、ブログに書いておきます。
構文中、For〜Nextなど使ってある範囲を繰り返し処理をしますが、
繰り返し文が二重になった時の概念が思ったより簡単だったので、
説明します。言語はVBです。
普通の繰り返し文
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Sub 配列変数とループ()
Dim A(0 To 2) As String
Dim i As Integer
A(0) = "近藤"
A(1) = "浅田"
A(2) = "竹内"
For i = 0 To 2
MsgBox (A(i) & "さんは出掛けました。")
Next
End Sub
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
For〜Nextで変数「A()」の要素を繰り返し毎に変えていきます。
よって、メッセージボックスには下記の3種類の文字列が表示されます。
1回目「近藤さんは出掛けました。」
2回目「浅田さんは出掛けました。」
3回目「竹内さんは出掛けました。」
※構文中は0から数えてます。
では二重ループです。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Sub 配列変数と二重ループ()
Dim A(0 To 1) As String, B(0 To 1) As String
Dim i As Integer, j As Integer
A(0) = "近藤"
A(1) = "浅田"
B(0) = "竹内"
B(1) = "関"
For i = 0 To 1
For j = 0 To 1
MsgBox (A(i) & "さんは" & B(j) & "さんに会いました。")
Next j
Next i
End Sub
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
これはまずiに0が入った時、jにも0が入ります。
jが0回目の処理を終えた時、繰り返し処理をするため「For j」に戻ります。
jに1が入り、1回目の処理をします。終えたら、「For j」の繰り返しは終わりますので、
「Next i」に進み「For i」へ進みます。それでiに1が入り、jに0が入ります
。で、jが0回目の処理を終えたら「For j」に戻り、jに1が入り、
1の処理が終わったら、2回目の処理はないのでそのままEnd Subで終了です。
上記の説明はややこしいけど、
簡単に言うと、「i=0」というの処理の中で「j=0」を処理して「j=1」という処理をしてから、
「i=1」という処理に進み、「j=0」を処理して「j=1」と言う処理をする、そんな感じです。
人で例えると、
近藤さん(i=0)が竹内さん(j=0)に会って、関さん(j=1)と会ってから、
浅田さん(i=1)は竹内さん(j=0)に会って、関さん(j=1)に会う、、、
イメージはそんな感じです(笑)
結果、
1回目「近藤さんは竹内さんに会いました。」
2回目「近藤さんは関さんに会いました。」
3回目「浅田さんは竹内さんに会いました。」
4回目「浅田さんは関さんに会いました。」
※構文中は0から数えてます。
と表示されます。
また、これらを応用すると、
下記のような多次元配列を使った二重ループを書く事が出来ます。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Sub 多次元配列と二重ループ()
Dim A(0 To 1, 0 To 1) As String
Dim i As Integer, j As Integer
A(0, 0) = "近藤"
A(0, 1) = "浅田"
A(1, 0) = "竹内"
A(1, 1) = "関"
For i = 0 To 1
For j = 0 To 1
MsgBox (A(i, j) & "さんは出掛けました。")
Next j
Next i
End Sub
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
結果は、
1回目「近藤さんは出掛けました。」
2回目「浅田さんは出掛けました。」
3回目「竹内さんは出掛けました。」
4回目「関さんは出掛けました。」
※構文中は0から数えてます。
のように表示されます。
またいつかブログ講座するかもしれません(笑)
もし興味あれば試してみて下さい。エクセルで出来ます。
Excel VBA 逆引き辞典パーフェクト 2010/2007/2003対応
- 作者: 田中亨
- 出版社/メーカー: 翔泳社
- 発売日: 2010/11/16
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 47回
- この商品を含むブログ (10件) を見る