VB.NET 2008/VB - 문법

문법 - 루프구조

본클라쓰 2011. 4. 4. 20:24

 

루프 구조를 사용하면 한 줄 이상의 코드를 반복해서 실행할 수 있다. 조건이 True 또는 False일 때까지 루프 구조에서 지정된 횟수만큼 또는 컬렉션의 각 요소에 대해 한 번씩 문을 반복할 수 있다.

 

다름 그름은 조건이 true가 될 때까지 문의 집합을 실행하는 루프 구조를 보여 준다.

 

 

 

 

While...End While 문

 

While...End While 문을 사용하여 루프의 반복을 제어하는 조건을 지정한다. 다음 예제의 문 블록은 number가 6보다 클 때만 반복된다.

 

Dim counter As Integer = 0

Dim number As Integer = 10

 

While number > 6

    number -= 1

    counter += 1

End While

 

 

While 문은 루프를 시작하기 전에 항상 조건을 검사하고 number가 10 대신 6으로 초기화되면 루프 내의 문이 실행되지 않는다.

 

조건이 True로 유지되는 동안 문 그룹을 실행하려면 Do...Loop 문을 사용하고 루프의 시작 또는 끝 부분에 테스트 조건을 지정한다. While 키워드의 위치에 따라 조건이 테스트되는 위치가 결정된다.

 

Dim counter As Integer = 0

Dim number As Integer = 10

 

Do While number > 6

    number -= 1

    counter += 1

Loop

 

 

Do

    number -= 1

    counter += 1

Loop While number > 6

 

첫 번째 Do 루프는 네번 실행되고, 두 번째 Do 루프는 다섯번 실행된다.

 

조건이 True가 될 때까지 문 그룹을 실행하려면 Do...Loop 구문을 사용하고 While 대신 Until 키워드를 사용한다. While과 마찬가지로 키워드의 위치에 따라 조건이 테스트되는 위치가 결정된다.

 

Dim counter As Integer = 0

Dim number As Integer = 10

 

Do until number = 6

    number -= 1

    counter += 1

Loop

 

 

Do 

    number -= 1

    counter += 1

Loop until number = 6

 

위 예제에서 각 Do 루프는 다섯 번 실행된다.

 

 

While 및 Do 루프는 루프에서 문을 몇 번 실행해야 하는지 미리 알 수 없는 경우에 유용하다. 그러나 루프를 특정 횟수만큼 실행해야 하는 경우에는 For...Next 문이 더 유용하다. while 또는 Do 루프와 달리 For...Next 루프는 루프가 반복되는 동안 값이 증가하거나 감소하는 제어 변수를 사용한다.

 

특정 횟수만큼 문 그룹을 실행하려면

 

For i As Integer = 1 To 10

 

제어 변수가 루프 외부에 선언되지 않았으면 As 절을 사용하여 제어 변수를 For 문의 일부로 선언할 수 있다.

 

Step 키워드를 사용하여 각 반복에 대한 제어 변수의 증가치를 지정한다. 값을 지정하지 않으며 자동으로 1씩 증가한다. 제어 변수를 줄이려면 음수 값을 사용한다.

 

For i As Integer = 10 To 1 Step -1

 

반복할 마지막 문 뒤에 Next 문을 추가하여 For...Next 구문을 완성한다. Next 문에 제어 변수를 지정할 수도 있다.

 

Dim total As Integer = 0

 

For i As Integer = hightst To 1 Step -1

    total += i

Next i

 

 

For Each 문은 For...Next 루프와 비슷하지만 문 블록을 지정된 횟수만큼 실행하는 것이 아니라 컬렉션의 각 요소에 대해 실행한다. For Each...Next 루프에서는 루프가 반복될 때마다 다른 컬렉션 요소를 나타내는 요소 변수를 사용한다.

 

For Each thisControl As System.Windows.Forms.Control In thisForm.Controls

    thisControl.BackColor = System.Drawing.Color.LightBlue

Next thisControl

 

컬렉션의 요소를 읽을 수는 있지만 요소 추가, 삭제 또는 바꾸기와 같이 컬렉션 자체를 변경하는 작업은 수행할 수 없다. 그러나 요소가 참조 형식인 경우에는 해당 멤버에 액세스하고 설정할 수 있다.

 

For Each...Next 루프를 사용하여 배열을 반복할 수도 있다. 그러나 배열 요소는 컬렉션과 마찬가지로 읽을 수만 있고 변경할 수는 없다.

 

 

 

 

참조) http://msdn.microsoft.com/ko-kr/library/whz9yas9.aspx

'VB.NET 2008 > VB - 문법' 카테고리의 다른 글

문법 - 예외 처리 Try Catch 구문  (0) 2011.04.04
문법 - Using 블록과 With 블록  (0) 2011.04.04
문법 - 판단구조  (0) 2011.04.04
문법 - 프로시저(procedure)  (0) 2011.04.04
문법 - 배열  (0) 2011.04.04