다음을 통해 공유


OrElse 연산자(Visual Basic)

두 식의 단락(short circuit) 논리합 연산을 수행합니다.

result = expression1 OrElse expression2

요소

  • result
    필수 요소.Boolean 식입니다.

  • expression1
    필수 요소.Boolean 식입니다.

  • expression2
    필수 요소.Boolean 식입니다.

설명

컴파일된 코드가 다른 식의 결과에 따라 한 식의 계산을 건너뛸 수 있는 경우의 논리 연산을 단락(short circuit)이라고 합니다.계산된 첫째 식의 결과가 연산의 최종 결과를 결정하는 경우에는 둘째 식을 계산해도 최종 결과가 변경되지 않으므로 둘째 식을 계산할 필요가 없습니다.단락(short circuit)을 사용하면 건너뛸 식이 복잡하거나 식에 프로시저 호출이 포함된 경우 성능을 향상시킬 수 있습니다.

두 식 중 하나 또는 둘 모두가 True이면 result는 True입니다.다음 표에서는 result가 결정되는 방식을 보여 줍니다.

expression1의 값

expression2의 값

result의 값

True

(계산되지 않음)

True

False

True

True

False

False

False

데이터 형식

OrElse 연산자는 Boolean 데이터 형식(Visual Basic)에 대해서만 정의됩니다.Visual Basic에서는 각 피연산자를 필요에 따라 Boolean으로 변환하고 연산을 완전 Boolean 형식으로 수행합니다.결과를 숫자 형식에 할당하면 Visual Basic에서 결과 형식이 Boolean에서 해당 형식으로 변환됩니다.이렇게 되면 예기치 않은 동작이 발생할 수 있습니다.예를 들어, 5 OrElse 12를 Integer로 변환하면 –1이 됩니다.

오버로딩

Or 연산자(Visual Basic)IsTrue 연산자(Visual Basic)는 오버로드할 수 있습니다. 즉, 피연산자의 형식이 특정 클래스 또는 구조인 경우 해당 클래스나 구조에서 이 연산자의 동작을 다시 정의할 수 있습니다.Or 및 IsTrue 연산자를 오버로드하면 OrElse 연산자의 동작이 영향을 받습니다.코드에서 Or 및 IsTrue를 오버로드하는 클래스나 구조에 대해 OrElse을 사용할 때는 다시 정의된 동작을 알고 있어야 합니다.자세한 내용은 연산자 프로시저(Visual Basic)를 참조하십시오.

예제

다음 예제에서는 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 계산에서는 둘째 식이 계산됩니다.

다음 예제에서는 두 개의 프로시저 호출을 포함하는 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

참고 항목

참조

논리/비트 연산자(Visual Basic)

Visual Basic에서의 연산자 우선 순위

기능별 연산자 목록(Visual Basic)

Or 연산자(Visual Basic)

IsTrue 연산자(Visual Basic)

개념

Visual Basic의 논리 및 비트 연산자