Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- #csharp #조건연산자 #삼항연산자 #논리연산자 #단락평가 #ifelse축약 #조건문 #프로그래밍기초 #csharp세미나
- 파이썬
- c#string
- c#bool
- #csharp #double #decimal #실수형 #정밀도 #부동소수점 #고정소수점 #금융계산 #과학계산 #csharp세미나 #닷넷기초
- #csharp #산술오버플로우 #checked #unchecked #overflowexception #정수연산 #오버플로우처리 #csharp세미나 #디버깅 #성능최적화
- #csharp #표현식 #배정표현식 #void표현식 #연산자 #산술연산자 #조건연산자 #표현식기초 #csharp세미나
- #csharp #부동소수점 #nan #infinity #특수값 #ieee754 #수치계산 #double #float #decimal #csharp세미나
- 자동매매
- c#
- #csharp #bool #boolean #논리연산자 #부울연산자 #단락평가 #조건문 #csharp기초 #삼항연산자 #csharp세미나
- #csharp #수치변환 #형식변환 #자동변환 #명시변환 #convert #parse #tryparse #csharp세미나
- #csharp #배열 #다차원배열 #가변배열 #배열초기화 #indexrange #span #배열비교 #csharp기초 #배열세미나
- USDT
- 무노동수입
- #csharp #산술연산자 #arithmeticoperators #기초프로그래밍 #csharp기초 #연산자우선순위 #정수연산 #실수연산 #math클래스 #나눗셈예외 #csharp세미나 #닷넷개발 #프로그래밍입문
- #csharp #문자열 #문자 #string #char #문자열보간 #문자열연결 #문자열비교 #형식지정자 #문자변환 #csharp세미나
- 빛썸
- #csharp #비트연산자 #bitwiseoperators #flagsenum #masking #시프트연산 #비트연산 #성능최적화 #csharp세미나 #하드웨어제어
- #csharp #기본값 #definiteassignment #default키워드 #초기화규칙 #구조체초기화 #null값 #csharp세미나
- #csharp #부동소수점 #반올림오차 #실수계산 #float #double #decimal #mathround #정확도비교 #csharp세미나
- #csharp #널연산자 #nulloperator #널조건부연산자 #널접합연산자 #nullcheck #csharp세미나 #nullsafe #코드안정성
- #csharp #연산자우선순위 #결합성 #operatorprecedence #연산자결합 #오른쪽결합 #왼쪽결합 #csharp세미나
- #csharp #관계연산자 #상등연산자 #equals #비교연산 #null비교 #float비교 #csharp기초 #csharp세미나 #문자열비교
- 빗썸api
- #csharp #매개변수 #ref #out #params #명명된인수 #선택적매개변수 #메서드전달 #csharp세미나
- #csharp #스택과힙 #메모리구조 #값형식 #참조형식 #박싱 #가비지컬렉션 #힙메모리 #메서드스택 #csharp세미나
- 테더
- #csharp #var키워드 #타입추론 #암묵적형식지정 #익명형식 #linq #지역변수 #csharp세미나
- #csharp #수치형식 #numerictypes #리터럴 #형식추론 #접미사 #decimal #float #double #프로그래미링기조 #그래피포뷰
Archives
- Today
- Total
맛있는 개발노트 (맛과 개발을 함께)
C# 세미나 자료: 상등 및 관계 연산자 (Equality & Relational Operators) 본문
C# 학습/C# 언어의 기초
C# 세미나 자료: 상등 및 관계 연산자 (Equality & Relational Operators)
DevGourmet 2025. 4. 8. 00:201. 개요
C#에서 상등(Equality) 및 관계(Relational) 연산자는 두 피연산자 간의 관계를 비교하고, 그 결과를 bool 타입으로 반환합니다. 조건문, 반복문, 필터링 로직 등 다양한 상황에서 사용되며, 프로그래밍의 핵심 비교 도구입니다.
이 세미나에서는 C#의 비교 연산자 종류, 특징, 사용법 및 주의사항을 초급부터 고급까지 단계별로 설명합니다.
2. 기본 이론
2.1 상등 연산자
연산자의미예시설명
== | 같음 | a == b | 두 값이 같으면 true |
!= | 다름 | a != b | 두 값이 다르면 true |
2.2 관계 연산자
연산자 | 의미 | 예시 | 설명 |
> | 보다 큼 | a > b | 왼쪽이 크면 true |
< | 보다 작음 | a < b | 왼쪽이 작으면 true |
>= | 크거나 같음 | a >= b | 왼쪽이 크거나 같으면 true |
<= | 작거나 같음 | a <= b | 왼쪽이 작거나 같으면 true |
- 모든 연산자는 bool 값을 반환함
- 피연산자의 형식이 동일하거나 암시적 변환 가능해야 함
3. 단계별 설명
3.1 초급: 숫자 및 문자 비교
int a = 5;
int b = 10;
Console.WriteLine(a == b); // false
Console.WriteLine(a < b); // true
char x = 'A';
char y = 'B';
Console.WriteLine(x < y); // true (문자 코드 비교)
3.2 중급: 문자열 및 사용자 정의 타입 비교
string name1 = "Alice";
string name2 = "alice";
Console.WriteLine(name1 == name2); // false (대소문자 구분)
Console.WriteLine(name1.Equals(name2, StringComparison.OrdinalIgnoreCase)); // true
- 문자열은 기본적으로 대소문자를 구분함
- 사용자 정의 타입은 Equals 또는 == 오버라이딩 필요
3.3 고급: 참조형 비교, null 비교
object obj1 = new object();
object obj2 = new object();
Console.WriteLine(obj1 == obj2); // false (참조 비교)
object obj3 = obj1;
Console.WriteLine(obj1 == obj3); // true
string s = null;
Console.WriteLine(s == null); // true
- 참조형에서 ==는 주소 비교를 기본으로 함
- null 비교는 예외를 방지하기 위한 필수 조건 검사로 자주 사용됨
4. 주의사항 및 팁
- 문자열 비교 시 대소문자 민감 여부 확인 (StringComparison 사용)
- 부동소수점 비교 시 == 사용은 권장되지 않음 → Math.Abs(a - b) < epsilon 방식 사용
- 사용자 정의 타입에서 ==, !=을 오버라이딩할 경우 Equals, GetHashCode도 함께 구현해야 함
- ==와 Equals()는 비슷하지만 의미가 다름 → 참조 vs. 값 비교
5. 결론
- 상등 및 관계 연산자는 C#의 조건 제어 및 논리 흐름의 핵심 도구
- 숫자, 문자, 문자열, 참조형에 따라 비교 방식이 다르며, 올바른 연산자를 선택해야 함
- ==와 Equals(), null 비교, 대소문자 민감도 등을 충분히 고려해야 함
6. Q&A
Q1. 문자열 비교에서 대소문자를 무시하고 비교하려면?
A1. Equals(str1, str2, StringComparison.OrdinalIgnoreCase)를 사용합니다.
Q2. float이나 double에서 == 비교가 정확하지 않나요?
A2. 그렇습니다. 반올림 오차가 존재하므로 Math.Abs(a - b) < 1e-10 같은 방식으로 비교하는 것이 좋습니다.
Q3. 사용자 정의 클래스에서 == 비교를 정확하게 하려면?
A3. ==, != 연산자를 오버로딩하고 Equals(), GetHashCode()도 함께 구현해야 합니다.
Q4. 참조형 객체는 값이 같아도 ==이 false가 될 수 있나요?
A4. 네. 기본 ==는 메모리 참조 주소를 비교하기 때문입니다. 값 비교가 필요하면 Equals() 또는 오버라이딩된 ==를 사용해야 합니다.
'C# 학습 > C# 언어의 기초' 카테고리의 다른 글
C# 세미나 자료: 문자열과 문자 (String & Char) (0) | 2025.04.08 |
---|---|
C# 세미나 자료: 조건 논리 연산자와 조건 연산자 (삼항 연산자) (0) | 2025.04.08 |
C# 세미나 자료: 부울 형식과 연산자 (Boolean Type & Operators) (0) | 2025.04.08 |
C# 세미나 자료: 실수 반올림 오차 (Floating-Point Rounding Error) (0) | 2025.04.08 |
C# 세미나 자료: double과 decimal의 차이 (0) | 2025.04.08 |