프로그램 실행 제어

조건문을 사용하면 결정을 내리고 작업을 반복하는 BSL 코드를 작성할 수 있습니다. BSL에서 사용할 수 있는 조건문은 다음과 같습니다.

  • If...Then...Else 명령문
  • Select Case 명령문

주:

If...Then...Else 명령문은 조건이 True 또는 False인지를 평가하고 결과에 따라 실행할 명령문을 1개 이상 지정하는 데 사용됩니다. 일반적으로 조건은 비교 연산자를 사용하여 1개의 값이나 변수를 다른 값이나 변수와 비교하는 표현식입니다. 비교 연산자에 대한 자세한 내용은 비교 연산자를 참조하십시오. If...Then...Else 명령문은 필요한 만큼의 수준으로 중첩할 수 있습니다.

조건이 True인 경우 명령문 실행

조건이 True일 때 1개의 명령문만 실행하려면 If...Then...Else 문에 대해 단일 행 구문을 사용합니다. 다음 예는 단일 행 구문을 보여줍니다.

이 예에서는 Else 키워드를 생략합니다.

Sub Test()
    Dim myNumber
    myNumber = 10
    If myNumber < 15 Then myNumber = 15
    'myNumber: 15
End Sub

2개 이상의 코드 행을 실행하려면 다중 행(또는 블록) 구문을 사용해야 합니다. 이 구문에는 다음 예와 같이 End If 명령문이 포함되어 있습니다.

Sub Test()
    Dim myNumber
    myNumber = 10
    If myNumber < 15 Then 
        myNumber = 15
    End If
    'myNumber: 15
End Sub

조건이 True인 경우 특정 명령문을 실행하고 조건이 False인 경우 기타 명령문을 실행합니다.

If...Then...Else 명령문을 사용하여 2개의 실행 명령문 블록을 정의할 수 있습니다. 하나는 조건이 True인 경우 실행되는 블록이고, 다른 하나는 조건이 False인 경우 실행되는 블록입니다.

Sub Test(value)
    If value = 0 Then
        value = 10
    Else
        value = 20
    End If
    ' Outputs: value: 10 if value was 0, otherwise 20
End Sub

여러 대안 중에서 결정

If...Then...Else 명령문에 변형을 사용하면 여러 대안 중에서 선택할 수 있습니다. ElseIf 절을 추가하면 If...Then...Else 명령문의 기능이 확장되므로 다양한 가능성에 따라 프로그램 흐름을 제어할 수 있습니다. 예:

Sub ReportValue(value)
If value = 0 Then
                    value = 10
        ElseIf value = 1 Then
                    value = 20
        ElseIf value = 2 Then
                    value = 30
        Else
                    value = 40
        End If
        'value: 20
End Sub
ReportValue(1) ' Condition ElseIf value = 1 is met and value will be set to 20

대체 선택항목을 제공하는 데 필요한 만큼 ElseIf 절을 추가할 수 있습니다. ElseIf 절을 과도하게 사용하면 번거로워지는 경우가 많습니다. 여러 대안 중에서 선택을 위한 더 좋은 방법은Select Case 명령문입니다.

Sub NestedIf(value)
    If value < 10 Then
        If value < 5 Then
            'value is less than 5
        Else
            'value is between 5 and 9
        End If
    Else
        'value is 10 or greater
    End If
End Sub

NestedIf(6)   ' Triggers the logic: value is between 5 and 9

Select Case를 사용한 결정

Select Case 구조는 여러 명령문 블록 중에서 1개의 명령문 블록을 선택적으로 실행하기 위한 If...Then...ElseIf의 대안을 제공합니다. Select Case 명령문은 If...Then...Else 명령문과 같은 기능을 제공하지만, 코드를 더 효율적이고 가독성 있게 만들어 줍니다.

Select Case 구조는 구조의 최상단에서 1회 평가되는 단일 테스트 표현식으로 작동합니다. 그런 다음, 표현식의 결과를 구조의 각 Case 값과 비교합니다. 일치 항목이 있으면 다음 예에서와 같이 해당 Case와 연계된 명령문 블록이 실행됩니다.

다음 예에서는 select case의 사용을 보여 줍니다.

예 1:

Dim age
age = (30/6) * 6   ' age = 30
Select Case True
    Case age < 18
        'You're a minor Section
    Case age >= 18 And age <= 65
        'You're an adult Section
    Case Else
        'You're a senior citizen Section
End Select

예 2:

Dim grade
grade = "B"
Select Case grade
        Case "A", "B", "C"
                'Pass Section
        Case "D"
                'Barely Passed Section
        Case "F"
                'Fail Section
        Case Else
                'Invalid grade Section
End Select

주:

Select Case 구조는 구조의 최상단에 위치한 표현식을 1회 평가합니다. 반면, If...Then...ElseIf 구조는 각 ElseIf 문에 대해 다른 표현식을 평가할 수 있습니다. 각 ElseIf 문이 동일한 표현식을 평가하는 경우에만 If...Then...ElseIf 구조를 Select Case 구조로 바꿀 수 있습니다.