두 식에서 단락 포괄 논리 분리를 수행합니다.
문법
result = expression1 OrElse expression2
부분
result
필수 사항입니다. 모든 Boolean 식입니다.
expression1
필수 사항입니다. 모든 Boolean 식입니다.
expression2
필수 사항입니다. 모든 Boolean 식입니다.
비고
컴파일된 코드가 다른 식의 결과에 따라 한 식의 평가를 무시할 수 있는 경우 논리 연산은 단락 이라고 합니다. 계산된 첫 번째 식의 결과가 작업의 최종 결과를 결정하는 경우 최종 결과를 변경할 수 없으므로 두 번째 식을 평가할 필요가 없습니다. 바이패스 식이 복잡하거나 프로시저 호출이 포함된 경우 단락은 성능을 향상시킬 수 있습니다.
두 식 중 하나 또는 둘 다 계산되는 Trueresult 경우는 다음과 같습니다True. 다음 표에서는 결정 방법을 result 보여 줍니다.
If expression1 is |
그리고 expression2 는 |
값 result 은 |
|---|---|---|
True |
(평가되지 않음) | True |
False |
True |
True |
False |
False |
False |
데이터 형식
OrElse 연산자는 부울 데이터 형식에 대해서만 정의됩니다. Visual Basic은 식을 평가하기 전에 필요에 Boolean 따라 각 피연산자를 변환합니다. 결과를 숫자 형식에 할당하면 Visual Basic에서 Boolean 해당 형식 False 으로 변환됩니다.0True-1
자세한 내용은 부울 형식 변환을 참조하세요.
오버로딩
Or 연산자와 IsTrue 연산자를 오버로드할 수 있습니다. 즉, 피연산자에 해당 클래스 또는 구조체의 형식이 있을 때 클래스 또는 구조체가 해당 동작을 다시 정의할 수 있습니다. 및 IsTrue 연산자를 Or 오버로드하면 연산자의 동작에 영향을 줍니다OrElse. 코드가 오버로드 OrIsTrue되는 클래스 또는 구조체에서 사용하는 OrElse 경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 운영자 프로시저를 참조하세요.
예제 1
다음 예제에서는 연산자를 OrElse 사용하여 두 식에 대해 논리적 분리를 수행합니다. 결과는 Boolean 두 식 중 하나가 true인지 여부를 나타내는 값입니다. 첫 번째 식이 True면 두 번째 식은 평가되지 않습니다.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
앞의 True예제에서는 각각 , True및 False 결과를 생성합니다. 계산 firstCheck에서 두 번째 식은 첫 번째 식이 이미 True있으므로 계산되지 않습니다. 그러나 두 번째 식은 계산에서 secondCheck계산됩니다.
예제 2
다음 예제에서는 두 개의 프로시저 호출을 포함하는 ...Then 문을 보여 If드립니다. 첫 번째 호출이 반환 True되면 두 번째 프로시저가 호출되지 않습니다. 두 번째 프로시저가 코드의 이 섹션이 실행될 때 항상 수행해야 하는 중요한 작업을 수행하는 경우 예기치 않은 결과가 발생할 수 있습니다.
If testFunction(5) = True OrElse otherFunction(4) = True Then
' If testFunction(5) is True, otherFunction(4) is not called.
' Insert code to be executed.
End If
참고하십시오
.NET