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에 할당합니다.