두 식에서 단락 논리 결합을 수행합니다.
문법
result = expression1 AndAlso expression2
부분
기간 | 정의 |
---|---|
result |
필수 사항입니다. 모든 Boolean 식입니다. 결과는 Boolean 두 식의 비교 결과입니다. |
expression1 |
필수 사항입니다. 모든 Boolean 식입니다. |
expression2 |
필수 사항입니다. 모든 Boolean 식입니다. |
비고
컴파일된 코드가 다른 식의 결과에 따라 한 식의 평가를 무시할 수 있는 경우 논리 연산은 단락 이라고 합니다. 계산된 첫 번째 식의 결과가 작업의 최종 결과를 결정하는 경우 최종 결과를 변경할 수 없으므로 두 번째 식을 평가할 필요가 없습니다. 바이패스 식이 복잡하거나 프로시저 호출이 포함된 경우 단락은 성능을 향상시킬 수 있습니다.
두 식이 모두 계산 True
되면 . result
입니다 True
. 다음 표에서는 결정 방법을 result
보여 줍니다.
If expression1 is |
그리고 expression2 는 |
값 result 은 |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
(평가되지 않음) | False |
비고
부울 비교에서 연산자는 And
항상 프로시저 호출을 포함할 수 있는 두 식을 모두 평가합니다.
AndAlso 연산자는 단락을 수행합니다. 즉, 이 경우 expression1
False
expression2
평가되지 않습니다.
데이터 형식
AndAlso
연산자는 부울 데이터 형식에 대해서만 정의됩니다. Visual Basic은 식을 평가하기 전에 필요에 Boolean
따라 각 피연산자를 변환합니다. 결과를 숫자 형식에 할당하면 Visual Basic에서 Boolean
해당 형식 False
으로 변환됩니다.0
True
-1
자세한 내용은 부울 형식 변환을 참조하세요.
오버로딩
And 연산자와 IsFalse 연산자를 오버로드할 수 있습니다. 즉, 피연산자에 해당 클래스 또는 구조체의 형식이 있을 때 클래스 또는 구조체가 해당 동작을 다시 정의할 수 있습니다. 및 IsFalse
연산자를 And
오버로드하면 연산자의 동작에 영향을 줍니다AndAlso
. 코드가 오버로드 And
IsFalse
되는 클래스 또는 구조체에서 사용하는 AndAlso
경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 운영자 프로시저를 참조하세요.
예제 1
다음 예제에서는 연산자를 AndAlso
사용하여 두 식에 논리적 결합을 수행합니다. 결과는 Boolean
결합된 전체 식이 true인지 여부를 나타내는 값입니다. 첫 번째 식이 False
면 두 번째 식은 평가되지 않습니다.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b AndAlso b > c
secondCheck = b > a AndAlso b > c
thirdCheck = a > b AndAlso c > b
앞의 예제에서는 각각 , False
및 False
의 True
결과를 생성합니다. 계산 secondCheck
에서 두 번째 식은 첫 번째 식이 이미 False
있으므로 계산되지 않습니다. 그러나 두 번째 식은 계산에서 thirdCheck
계산됩니다.
예제 2
다음 예제에서는 배열의 요소 중에서 지정된 값을 검색하는 프로시저를 보여줍니다 Function
. 배열이 비어 있거나 배열 길이가 초과된 While
경우 문은 검색 값에 대해 배열 요소를 테스트하지 않습니다.
Public Function findValue(ByVal arr() As Double,
ByVal searchValue As Double) As Double
Dim i As Integer = 0
While i <= UBound(arr) AndAlso arr(i) <> searchValue
' If i is greater than UBound(arr), searchValue is not checked.
i += 1
End While
If i > UBound(arr) Then i = -1
Return i
End Function
참고하십시오
.NET