다음을 통해 공유


비교 연산자(Visual Basic)

다음은 Visual Basic에 정의된 비교 연산자입니다.

< 연산자

<= 연산자

> 연산자

>= 연산자

= 연산자

<> 연산자

Is 연산자

IsNot 연산자

Like 연산자

이러한 연산자는 두 식을 비교하여 같는지 여부와 같지 않은지 여부를 결정합니다. Is, IsNot별도의 Like 도움말 페이지에서 자세히 설명합니다. 관계형 비교 연산자는 이 페이지에서 자세히 설명합니다.

문법

result = expression1 comparisonoperator expression2  
result = object1 [Is | IsNot] object2  
result = string Like pattern  

부분

result
필수 사항입니다. Boolean 비교 결과를 나타내는 값입니다.

expression1, expression2
필수 사항입니다. 모든 식입니다.

comparisonoperator
필수 사항입니다. 관계형 비교 연산자입니다.

object1, object2
필수 사항입니다. 모든 참조 개체 이름입니다.

string
필수 사항입니다. 모든 String 식입니다.

pattern
필수 사항입니다. 모든 String 식 또는 문자 범위입니다.

비고

다음 표에는 관계형 비교 연산자 및 조건 result 의 목록이 포함되어 있습니다 TrueFalse.

오퍼레이터 True False
< (보다 작음) expression1 < expression2 expression1 >= expression2
<= (보다 작거나 같음) expression1 <= expression2 expression1 > expression2
> (크다) expression1 > expression2 expression1 <= expression2
>= (보다 크거나 같음) expression1 >= expression2 expression1 < expression2
= (같음) expression1 = expression2 expression1 <> expression2
<> (같지 않음) expression1 <> expression2 expression1 = expression2

비고

= 연산자는 대입 연산자로도 사용됩니다.

Is 연산자, IsNot 연산자 및 연산자에 Like 는 이전 표의 연산자와 다른 특정 비교 기능이 있습니다.

숫자 비교

형식의 식을 형식 SingleDouble하나와 비교하면 식이 Single .로 Double변환됩니다. 이 동작은 Visual Basic 6에 있는 동작과 반대입니다.

마찬가지로 형식의 식을 형식 DecimalSingle 식과 비교하거나 Double식이 Decimal 변환되거나 Double변환 Single 됩니다. 식의 경우 Decimal 1E-28보다 작은 소수 값은 손실될 수 있습니다. 이러한 소수 값 손실로 인해 두 값이 같지 않은 경우 동일하게 비교할 수 있습니다. 이러한 이유로 같음(=)을 사용하여 두 부동 소수점 변수를 비교할 때 주의해야 합니다. 두 숫자 사이의 차이의 절대값이 허용되는 허용 오차보다 작은지 여부를 테스트하는 것이 더 안전합니다.

부동 소수점 임프레시온

부동 소수점 숫자로 작업할 때 항상 메모리에 정확한 표현이 있는 것은 아니라는 점에 유의하세요. 이로 인해 값 비교 및 Mod 연산자와 같은 특정 작업에서 예기치 않은 결과가 발생할 수 있습니다. 자세한 내용은 데이터 형식 문제 해결을 참조하세요.

문자열 비교

문자열을 비교할 때 문자열 식은 설정에 따라 알파벳 정렬 순서에 Option Compare 따라 평가됩니다.

Option Compare Binary 는 문자의 내부 이진 표현에서 파생된 정렬 순서를 기준으로 문자열 비교를 기반으로 합니다. 정렬 순서는 코드 페이지에 의해 결정됩니다. 다음 예제에서는 일반적인 이진 정렬 순서를 보여줍니다.

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Option Compare Text 는 애플리케이션의 로캘에 의해 결정되는 대/소문자를 구분하지 않는 텍스트 정렬 순서에 따라 문자열 비교를 기반으로 합니다. 앞의 예제에서 문자를 설정하고 Option Compare Text 정렬하면 다음 텍스트 정렬 순서가 적용됩니다.

(A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)

로캘 의존성

설정할 Option Compare Text때 문자열 비교 결과는 애플리케이션이 실행 중인 로캘에 따라 달라질 수 있습니다. 두 문자는 한 로캘에서 같지만 다른 로캘에서는 비교할 수 없습니다. 문자열 비교를 사용하여 로그온 시도를 허용할지 여부와 같은 중요한 결정을 내리는 경우 로캘 민감도에 대해 경고해야 합니다. Option Compare Binary 로캘을 StrComp고려하는 설정을 지정하거나 호출하는 것이 좋습니다.

관계형 비교 연산자를 사용한 형식 없는 프로그래밍

식에서 Object 관계형 비교 연산자를 사용할 수 Option Strict On없습니다. 식이거나 Offexpression1expression2Object 인 경우 Option Strict 런타임 형식은 비교 방법을 결정합니다. 다음 표에서는 피연산자의 런타임 형식에 따라 식을 비교하는 방법과 비교 결과를 보여 줍니다.

피연산자인 경우 비교는
둘다 String 문자열 정렬 특성에 따라 비교를 정렬합니다.
두 숫자 모두 숫자 비교로 Double변환된 개체입니다.
숫자 1개와 숫자 1개 String String 값은 a Double 로 변환되고 숫자 비교가 수행됩니다. String 변환Double할 수 없으면 throw InvalidCastException 됩니다.
둘 중 하나 또는 둘 다 이외의 참조 형식입니다. String throw InvalidCastException 됩니다.

숫자 비교는 0으로 처리 Nothing 됩니다. 문자열 비교는 빈 문자열로 "" 처리 Nothing 됩니다.

오버로딩

관계형 비교 연산자(<. <=, , >, >=, =<>)를 오버로드할 수 있습니다. 즉, 피연산자의 형식이 해당 클래스 또는 구조체에 있을 때 클래스 또는 구조체가 해당 동작을 다시 정의할 수 있습니다. 코드에서 이러한 클래스 또는 구조체에서 이러한 연산자를 사용하는 경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 운영자 프로시저를 참조하세요.

= 연산자는 대입 연산자가 아니라 관계형 비교 연산자로만 오버로드할 수 있습니다.

예시

다음 예제에서는 식을 비교하는 데 사용하는 관계형 비교 연산자의 다양한 용도를 보여 줍니다. 관계형 비교 연산자는 명시된 식이 계산되는지 여부를 나타내는 결과를 반환 Boolean 합니다 True. 문자열에 > 연산자와 < 연산자를 적용하면 문자열의 일반 사전순 정렬 순서를 사용하여 비교됩니다. 이 순서는 로캘 설정에 따라 달라질 수 있습니다. 정렬이 대/소문자를 구분하는지 여부는 옵션 비교 설정에 따라 달라집니다.

Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
    ' Insert code to run if x and y point to the same instance.
End If

앞의 예제에서 첫 번째 비교는 반환 False 되고 나머지 비교는 반환 True됩니다.

참고하십시오