If...Then...Else 문(Visual Basic)

업데이트: 2007년 11월

식의 값에 따라 조건에 맞는 문 그룹을 실행합니다.

If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]

구성 요소

  • condition
    필수적 요소이며 식입니다. True 또는 False이거나 Boolean으로 암시적으로 변환할 수 있는 데이터 형식이어야 합니다.

  • Then
    한 줄 형태에서는 필수적 요소이고 여러 줄 형태에서는 선택적 요소입니다.

  • statements
    선택적 요소입니다. condition이 True이면 실행되며 If...Then 다음에 오는 하나 이상의 문입니다.

  • elseifcondition
    ElseIf가 있으면 필수적 요소이며 식입니다. True 또는 False입니다. 또한 Boolean으로 암시적으로 변환할 수 있는 데이터 형식이어야 합니다.

  • elseifstatements
    선택적 요소입니다. elseifcondition이 True이면 실행되며 ElseIf...Then 다음에 오는 하나 이상의 문입니다.

  • elsestatements
    선택적 요소입니다. 앞에 나오는 condition 또는 elseifcondition 식이 True가 아니면 실행되는 하나 이상의 문입니다.

  • End If
    If...Then...Else 블록을 끝냅니다.

설명

짧고 간단한 테스트를 수행하는 경우 한 줄 형태를 사용할 수 있습니다. 그러나 여러 줄 형태는 한 줄 형태보다 많은 구조와 융통성을 제공하며, 일반적으로 읽고, 유지하고, 디버깅하기가 더 쉽습니다.

여러 줄 If...Then...Else가 있으면 condition이 테스트됩니다. condition이 True이면 Then 다음에 오는 문이 실행되고 condition이 False이면 각 ElseIf 문이 순서대로 실행됩니다. elseifcondition이 True이면 연관된 Then의 바로 다음에 오는 문이 실행됩니다. elseifcondition이 True가 아니거나 ElseIf 문이 없으면 Else 다음에 오는 문이 실행됩니다. Then, ElseIf 또는 Else 문 다음에 오는 문을 실행한 후에 End If 다음에 오는 문에서 실행이 계속됩니다.

팁:

가능한 값이 여러 개 있는 단일 식을 계산하는 경우에는 Select...Case 문(Visual Basic)을 사용하는 것이 좋습니다.

한 줄 형태에서는 If...Then의 결과에 따라 여러 개의 문을 실행할 수 있습니다. 모든 문은 같은 줄에 있어야 하며 콜론으로 구분되어야 합니다. 다음 코드에서는 이 작업에 대해 설명합니다.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

여러 줄 형태에서는 첫 줄에 If 문만 있어야 합니다. ElseIf, Else 및 End If 문은 줄 레이블 뒤에만 올 수 있습니다. 여러 줄 If...Then...Else 블록은 End If 문으로 끝나야 합니다.

If 문에 여러 줄 형태가 사용되었는지 여부를 확인하려면 Then 키워드 다음에 오는 문을 검사합니다. 동일한 문에서 Then 다음에 주석 이외의 다른 문이 오면 이 문은 한 줄 형태인 If 문으로 처리됩니다. Then이 없는 경우 이 문은 여러 줄 If...Then...Else 문의 시작 부분이 되어야 합니다.

ElseIf 및 Else 절은 모두 선택적 요소입니다. 여러 줄인 If...Then...Else에 여러 개의 ElseIf절을 사용할 수 있으나 이 절은 Else 절 다음에는 올 수 없습니다. 여러 줄 형태는 서로 중첩될 수 있습니다.

예제

다음 예제에서는 If...Then...Else 문의 여러 줄 형태와 한 줄 형태를 모두 보여 줍니다.

Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
    digits = 1
ElseIf number < 100 Then
    digits = 2
Else
    digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

위의 예제에서 ElseIf 조건은 True가 되고 digits에는 값 2가 할당됩니다. 그런 다음 마지막 문은 "More than one" 값을 myString에 할당합니다.

참고 항목

참조

#If...Then...#Else 지시문

Choose 함수

Select...Case 문(Visual Basic)

Switch 함수