Section 3.3: 관계 연산자 (Relational Operator) 들

동등

주어진 피연산자들 (인자) 이 서로 동등한지를 확인한다.

"a" == "b" // false 를 반환한다. "a" == "a" // true 를 반환한다. 1 == 0 // false 를 반환한다. 1 == 1 // true 를 반환한다. false == true // false 를 반환한다. false == false // true 를 반환한다.

Java 와는 달리, 동등 비교 연산자는 string 에 대해 native 하게 동작한다.

동등 비교 연산자는 다른 타입들이 인자로 주어지더라도 해당 타입들간 묵시적 변환 (implicit cast)이 존재한다면 정상적으로 동작하게 되어 있다. 만약 적절한 묵시적 변환이 존재하지 않는다면, 사용자는 명시적 변환 (explicit cast) 을 수행하거나 호환 가능한 타입으로 변환해주는 메소드를 사용할 수 있다.

1 == 1.0 // int 에서 double 로의 묵시적 변환이 존재하므로 true 를 반환한다. new Object() == 1.0 // 컴파일되지 않는다. MyStruct.AsInt() == 1 // MyStruct 에 대해 AsInt() 를 호출하고 반환된 int 값을 1과 비교한다.

Visual Basic.NET 과 달리, 동등 비교 연산자는 동등 대입 연산자 (equality assignment operator) 와 같지 않다.

var x = new Object(); var y = new Object(); x == y // 피연산자들 (이 예제에서는 객체들) 이 각각 다른 참조값을 가지고 있으므로 false 를 반환한다. x == x // 양쪽 피연산자들이 모두 같은 참조값을 가지고 있으므로 true 를 반환한다.

대입 연산자 (=) 와 혼동하지 않도록 한다.

값 타입 (value type) 들에 대해서는, 동등 연산자는 양쪽 피연산자들의 값이 동등할 때 true 를 반환한다.
참조 타입 (reference type) 들에 대해서는, 양쪽 피연산자들의 (실제 값이 아니라) 참조값이 같은 경우 true 를 반환한다. 한가지 예외가 있다면 문자열 (string) 객체로써, 이는 값에 대한 동등 여부를 비교하게 된다.

비동등

주어진 피연산자들이 동등하지 않은지를 검사한다.

"a" != "b" // true 를 반환한다. "a" != "a" // false 를 반환한다. 1 != 0 // true 를 반환한다. 1 != 1 // false 를 반환한다. false != true // true 를 반환한다. false != false // false 를 반환한다. var x = new Object(); var y = new Object(); x != y // 두 피연산자가 각기 다른 참조값을 가지고 있으므로 true 를 반환한다. x != x // 두 피연산자가 모두 같은 참조값을 가지고 있으므로 false 를 반환한다.

이 연산자는 실제적으로 동등 (==) 연산자와 반대의 결과값을 반환하게 된다.

초과

첫번째 피연산자가 두번째 피연산자보다 더 큰지 검사한다.

3 > 5 // false 를 반환한다. 1 > 0 // true 를 반환한다. 2 > 2 // false 를 반환한다. var x = 10; var y = 15; x > y // false 를 반환한다. y > x // true 를 반환한다.

미만

첫번째 피연산자가 두번째 피연산자보다 더 작은지 검사한다.

2 < 4 // true 를 반환한다. 1 < -3 // false 를 반환한다. 2 < 2 // false 를 반환한다. var x = 12; var y = 22; x < y // true 를 반환한다. y < x // false 를 반환한다.

이상

첫번째 피연산자가 두번째 피연산자보다 더 크거나 같은지 검사한다.

7 >= 8 // false 를 반환한다. 0 >= 0 // true 를 반환한다.

이하

첫번째 피연산자가 두번째 피연산자보다 더 작거나 같은지 검사한다.

2 <= 4 // true 를 반환한다. 1 <= -3 // false 를 반환한다. 1 <= 1 // true 를 반환한다.
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts