• 쇼핑몰
  • 커뮤니티
  • 북마크

vb6.0/vba




[vba] [vba] 아는것이 힘이다 - 2중 및 다중 중첩 For문의 활용

하나를하더라도최선을
2020.10.02 10:00 74 0

본문



보통 2중 중첩 For문의 경우 아래와 같이 사용합니다.

Sub program1472_com()

Dim i As Integer, n As Integer

Dim T As String

T = "i * n = ?" & vbCrLf

For i = 1 To 5

For n = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " = " & i * n

Next n

Next i

MsgBox T

End Sub

아래는 출력 결과 입니다.

이정도는 초보 분들도 다 아실 내용입니다.

다음으로 소개해 드릴 방법은 상상도 못할 고급 프로만이 사용하는 기술 입니다.

Sub program1472_com()

Dim i As Integer, n As Integer

Dim T As String

T = "i * n = ?" & vbCrLf

For i = 1 To 5

For n = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " = " & i * n

Next n, i

MsgBox T

End Sub

이걸 좀더 변형하면

Sub program1472_com()

Dim i As Integer, n As Integer

Dim T As String

T = "i * n = ?" & vbCrLf

For i = 1 To 5: For n = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " = " & i * n

Next n, i

MsgBox T

End Sub

이렇게 사용할 수 있습니다.

이 3가지 모두 똑같은 결과값을 도출합니다.

주의 할점으로 "Next n, i" 여기서 "선입후출" 이라고 해야 하나요?

마지막 For문이 맨 앞으로 오고 시작하는 For문이 맨 끝으로 가야 합니다.

3중 For문의 경우 응용한다면 아래와 같이 사용할 수 있겠지요

Sub program1472_com()

Dim i As Integer, n As Integer, x As Integer

Dim T As String

T = "i * n * x = ?" & vbCrLf

For i = 1 To 5

For n = 1 To 5

For x = 1 To 5

If Len(T) Then T = T & vbCrLf

T = T & i & " * " & n & " * " & x & " = " & i * n * x

Next x, n, i

MsgBox T

End Sub

출력 결과는 아래와 같습니다.(MsgBox로 출력해서 잘린겁니다.)



댓글목록 0

등록된 댓글이 없습니다.