방법: 하나 이상의 조건에 따라 문 실행(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)