OrElse 연산자(Visual Basic)
두 식에 단락 포괄 논리 분리를 수행합니다.
구문
result = expression1 OrElse expression2
부분
result
필수입니다. 임의의 Boolean
식입니다.
expression1
필수입니다. 임의의 Boolean
식입니다.
expression2
필수입니다. 임의의 Boolean
식입니다.
설명
컴파일된 코드가 다른 식의 결과에 따라 한 식의 평가를 바이패스할 수 있는 경우 논리 연산이 단락된다고 합니다. 평가된 첫 번째 식의 결과로 연산의 최종 결과가 결정되는 경우 두 번째 식은 최종 결과를 변경할 수 없으므로 두 번째 식을 평가할 필요가 없습니다. 바이패스된 식이 복잡하거나 프로시저 호출과 관련된 경우 단락을 사용하면 성능이 향상될 수 있습니다.
하나 또는 두 식이 모두 True
로 평가되는 경우 result
는 True
입니다. 다음 표에서는 result
가 결정되는 방법을 보여 줍니다.
expression1 이 |
그리고 expression2 가 |
result 의 값이 |
---|---|---|
True |
(평가되지 않음) | True |
False |
True |
True |
False |
False |
False |
데이터 형식
OrElse
연산자는 부울 데이터 형식에 대해서만 정의됩니다. Visual Basic은 식을 평가하기 전에 필요에 따라 각 피연산자를 Boolean
으로 변환합니다. 결과를 숫자 형식에 할당하는 경우 Visual Basic은 Boolean
에서 해당 형식으로 변환하여 False
가 0
이 되고 True
가 -1
이 됩니다.
자세한 내용은 부울 형식 변환을 참조하세요.
오버로딩
Or 연산자 및 IsTrue 연산자는 오버로드될 수 있습니다. 즉, 피연산자가 해당 클래스 또는 구조체 형식을 가질 때 클래스 또는 구조체의 동작을 재정의할 수 있습니다. Or
및 IsTrue
연산자를 오버로드하면 OrElse
연산자의 동작에 영향을 줍니다. 코드가 Or
및 IsTrue
를 오버로드하는 클래스 또는 구조체에 OrElse
를 사용하는 경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 Operator Procedures을 참조하세요.
예 1
다음 예에서는 OrElse
연산자를 사용하여 두 식에 대한 논리적 분리를 수행합니다. 결과는 두 식 중 하나가 true인지 여부를 나타내는 Boolean
값입니다. 첫 번째 식이 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
다음 예제에서는 두 개의 프로시저 호출을 포함하는 If
...Then
문을 보여 줍니다. 첫 번째 호출이 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