Microsoft® Visual Basic® Scripting Edition
조건문 사용
 VBScript 자습서
 이전 페이지다음 페이지


프로그램 실행 제어
조건문과 루프 처리문으로 스크립트의 흐름을 제어할 수 있습니다. 또한 조건문을 사용하면 동작을 결정하여 반복하는 VBScript 코드를 작성할 수도 있습니다. VBScript에서는 아래 조건문을 사용할 수 있습니다.
If...Then...Else문에 의한 결정
If...Then...Else문은 조건문이 True 또는 False인지를 평가하고 그 결과에 따라 둘 이상의 명령문을 실행합니다. 대개 조건문은 비교 연산자를 사용하여 값이나 변수를 서로 비교하는 식입니다. 비교 연산자에 관한 정보는 비교 연산자를 참조하십시오. If...Then...Else문은 필요한 만큼 중첩할 수 있습니다.

조건문이 True인 경우 명령문 실행
조건문이 True일 때 하나의 명령문만 실행하려면 If...Then...Else문의 단일 줄 구문을 사용합니다. 아래 용례에서는 단일 줄 구문을 보여주지만 Else 키워드를 생략하고 있음에 유의하십시오.
 Sub FixDate()
     Dim myDate
     myDate = #2/13/95#
     If myDate < Now Then myDate = Now
 End Sub
두 줄 이상의 코드를 실행하려면 여러 줄(또는 블록) 구문을 사용해야 합니다. 이 구문은 아래 용례에서처럼 End If문을 포함합니다.
 Sub AlertUser(value)
     If value = 0 Then
         AlertLabel.ForeColor = vbRed
         AlertLabel.Font.Bold = True
         AlertLabel.Font.Italic = True
     End If
 End Sub
조건문이 True인 경우와 False인 경우에 서로 다른 명령문 실행
If...Then...Else문을 사용하면 실행할 수 있는 2개의 블록문을 정의할 수 있습니다. 즉 조건문이 True일 때 한 블록문을, False일 때 다른 블록문을 실행합니다.
 Sub AlertUser(value)
     If value = 0 Then
         AlertLabel.ForeColor = vbRed
         AlertLabel.Font.Bold = True
         AlertLabel.Font.Italic = True
     Else
         AlertLabel.Forecolor = vbBlack
         AlertLabel.Font.Bold = False
         AlertLabel.Font.Italic = False
     End If
 End Sub
여러 대안 중에서 결정
If...Then...Else문을 변형하면 여러 대안 중에서 선택할 수 있습니다. ElseIf절을 추가하면 If...Then...Else문의 기능을 확장하여 여러 가지 다른 가능성(확률)을 기준으로 프로그램 흐름을 제어할 수 있습니다. 사용 예는 아래와 같습니다.
 Sub ReportValue(value)
     If value = 0 Then
         MsgBox value
     ElseIf value = 1 Then
         MsgBox value
     ElseIf value = 2 then
         Msgbox value
     Else
         Msgbox "허용 범위를 벗어난 값입니다!"
     End If
선택적인 대안을 제공할 필요가 있는 만큼 ElseIf절을 추가할 수 있습니다. ElseIf절을 너무 많이 사용하면 가끔 작업이 번거로워집니다. 여러 대안에서 선택할 경우에는 Select Case문을 사용하는 것이 가장 좋습니다.
Select Case문에 의한 결정
Select Case 구조는 여러 블록문에서 선택적으로 하나를 실행하는 If...Then...ElseIf문에 대한 대안을 제공합니다. Select Case문은 If...Then...Else문과 비슷한 기능을 제공하지만, 더 효율적이고 읽기 쉬운 코드를 작성합니다.

Select Case 구조는 해당 구조의 맨 앞에서 한 번만 평가되는 테스트 식 하나로 작동합니다. 그런 다음 그 식의 결과 값과 구조에 있는 각 Case의 값을 비교합니다. 서로 일치하면 해당 Case와 연관된 블록문을 실행합니다.

 Select Case Document.Form1.CardType.Options(SelectedIndex).Text
    Case "MasterCard"
        DisplayMCLogo
        ValidateMCAccount
    Case "Visa"
        DisplayVisaLogo
        ValidateVisaAccount
    Case "American Express"
        DisplayAMEXCOLogo
        ValidateAMEXCOAccount
    Case Else
        DisplayUnknownImage
        PromptAgain
End Select
Select Case 구조는 구조의 맨 앞에 있는 식을 한 번만 평가하지만, If...Then...ElseIf 구조는 각 ElseIf문에 대한 서로 다른 식을 평가합니다. 각각의 ElseIf문이 동일한 식을 평가할 경우에만 If...Then...ElseIf 구조를 Select Case 구조로 대체할 수 있습니다.