조건문을 사용하면 결정을 내리고 작업을 반복하는 BSL 코드를 작성할 수 있습니다. BSL에서 사용할 수 있는 조건문은 다음과 같습니다.
주:
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 구조로 바꿀 수 있습니다.