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

업데이트: 2010년 12월

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

' Multiple-line syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

' Single-line syntax:
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이면 연관된 ElseIf의 바로 다음에 오는 문이 실행됩니다. elseifcondition이 True가 아니거나 ElseIf 문이 없으면 Else 다음에 오는 문이 실행됩니다. Then, ElseIf 또는 Else 문 다음에 오는 문을 실행한 후에 End If 다음에 오는 문에서 실행이 계속됩니다.

ElseIf 및 Else 절은 모두 선택적 요소입니다. If...Then...Else 문에 원하는 수의 ElseIf 절을 사용할 수는 있지만 Else 절 다음에는 ElseIf 절이 올 수 없습니다. If...Then...Else 문은 서로 중첩할 수 있습니다.

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

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

단일줄 구문

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

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

한 줄 구문에서는 If...Then의 결과에 따라 여러 개의 문을 실행할 수 있습니다. 모든 문은 같은 줄에 있어야 하며 콜론으로 구분되어야 합니다.

예제

다음 예제는 If...Then...Else 문의 여러 줄로 된 구문 사용을 보여 줍니다.

        Dim count As Integer = 0
        Dim message As String

        If count = 0 Then
            message = "There are no items."
        ElseIf count = 1 Then
            message = "There is 1 item."
        Else
            message = "There are " & count & " items."
        End If

다음 예제에는 중첩된 If...Then...Else 문이 포함되어 있습니다.

Private Function CheckIfTime() As Boolean
    ' Determine the current day of week and hour of day.
    Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
    Dim hour As Integer = DateTime.Now.Hour

    ' Return True if Wednesday from 2 to 4 P.M.,
    ' or if Thursday from noon to 1 P.M.
    If dayW = DayOfWeek.Wednesday Then
        If hour = 14 Or hour = 15 Then
            Return True
        Else
            Return False
        End If
    ElseIf dayW = DayOfWeek.Thursday Then
        If hour = 12 Then
            Return True
        Else
            Return False
        End If
    Else
        Return False
    End If
End Function

다음 예제에는 한 줄로 된 구문 사용을 보여 줍니다.

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

참고 항목

작업

방법: 하나 이상의 조건에 따라 문 실행(Visual Basic)

참조

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

Choose

Select...Case 문(Visual Basic)

Switch

개념

중첩 제어 구조(Visual Basic)

판단 구조(Visual Basic)

Visual Basic의 논리 및 비트 연산자

변경 기록

날짜

변경 내용

이유

2010년 12월

비고 섹션을 재구성했습니다.

향상된 기능 관련 정보

2010년 12월

예제가 추가되었습니다.

고객 의견