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

If...Then...Else 문(Visual Basic)을 사용하여 조건의 Boolean 데이터 형식(Visual Basic) 값에 따라 특정 문 또는 문 블록을 실행할 수 있습니다. 조건은 일반적으로 두 값을 비교해서 지정됩니다. 그러나 Boolean 값(True 또는 False)이 되는 식도 조건이 될 수 있으며, 이런 경우 Boolean으로 변환된 다른 데이터 형식(예: 숫자 형식)의 값을 포함합니다.

조건이 True일 때 하나 이상의 문을 실행하려면

  • 문을 하나만 실행할 경우 한 줄로 된 If...Then...Else 구문을 사용합니다. Else 또는 End If 문은 필요하지 않습니다. 다음은 이에 대한 예입니다.

    Sub fixDate()
        Dim myDate As Date = #2/13/1973#
        If myDate < Now Then myDate = Now
    End Sub
    

    또는

  • 조건이 True일 때 두 줄 이상의 코드를 실행하려면 End If 문을 포함하는 여러 줄로 된 구문을 사용합니다. 조건이 False일 때 실행할 코드가 없으면 Else 문을 생략합니다. 다음은 이에 대한 예입니다.

    Dim alertLabel As New System.Windows.Forms.Label
    Sub alertUser(ByVal value As Long)
        If value = 0 Then
            alertLabel.ForeColor = System.Drawing.Color.Red
            alertLabel.Font = New Font(alertLabel.Font, 
                FontStyle.Bold Or FontStyle.Italic)
        End If
    End Sub
    

조건이 True일 때와 False일 때 각각 다른 문을 실행하려면

  • Else 문(Visual Basic) 문을 포함하는 If...Then...Else 구문을 사용하여 두 개의 문 블록을 정의합니다. Visual Basic에서는 조건이 True이면 한 블록을 실행하고 조건이 False이면 다른 한 블록을 실행합니다. 다음은 이에 대한 예입니다.

    Dim alertLabel As New System.Windows.Forms.Label
    Sub alertUser(ByVal value As Long)
        If value = 0 Then
            alertLabel.ForeColor = System.Drawing.Color.Red
            alertLabel.Font = New Font(alertLabel.Font, 
                FontStyle.Bold Or FontStyle.Italic)
        Else
            alertLabel.Forecolor = System.Drawing.Color.Black
            alertLabel.Font = New Font(alertLabel.Font, 
                FontStyle.Regular)
        End If
    End Sub
    

첫 번째 조건이 False인 경우 추가 조건을 테스트하려면

  • ElseIf 문을 하나 이상 포함하는 If...Then...Else 구문을 사용하여 첫 번째 조건이 False인 경우 추가 조건을 테스트합니다. 다음 예제에서 Function 프로시저는 성과급을 기반으로 한 급여 보너스를 계산합니다. Else 문 뒤의 문 블록은 If 및 ElseIf 문의 조건이 모두 False인 경우에만 실행됩니다.

    Function bonus(ByVal performance As Integer, 
                   ByVal salary As Decimal) As Decimal
        If performance = 1 Then
            Return salary * 0.1
        ElseIf performance = 2 Then
            Return salary * 0.09
        ElseIf performance = 3 Then
            Return salary * 0.07
        Else
            Return 0
        End If
    End Function
    

    Visual Basic에서는 If...Then...Else 문에 나타나는 순서대로 조건을 테스트하고, True 조건이나 Else 문을 만나면 해당하는 문 블록을 실행합니다. 그런 다음 End If 문 다음의 문으로 제어를 전달합니다.

    ElseIf 문을 원하는 만큼 포함하거나 하나도 포함하지 않을 수 있습니다. Else 문은 ElseIf 문이 있는지 여부에 관계없이 포함하거나 생략할 수 있습니다.

참고 항목

작업

방법: 제어 구조 밖으로 제어 전달(Visual Basic)

방법: 식의 여러 값 테스트(Visual Basic)

방법: 오류가 발생할 때 제어 유지(Visual Basic)

개념

판단 구조(Visual Basic)

루프 구조(Visual Basic)

기타 제어 구조(Visual Basic)

중첩 제어 구조(Visual Basic)

기타 리소스

Visual Basic의 제어 흐름