1. 산술, 관계, 논리 연산자 사용법
1) 산술연산자
산술 연산자는 숫자를 대상으로 사용된다.
연산자 | 설명 |
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 |
2) 관계연산자
관계 연산자는 두 값을 비교하여 참(True) 또는 거짓(False)값을 반환한다.
연산자 | 설명 |
== | 같음 |
!= | 다름 |
> | 큼 |
< | 작음 |
>= | 크거나 같음 |
<= | 작거나 같음 |
3) 논리연산자
논리 연산자는 참(True) 또는 거짓 (False) 값을 대상으로 사용된다.
연산자 | 설명 |
&& | 논리곱 (AND) |
|| | 논리합 (OR) |
! | 논리부정 (NOT) |
2. 비트 연산자
1) 비트연산자
비트 연산자는 데이터의 비트 단위로 연산을 수행하는 연산자이다.
연산자 | 설명 |
& (AND) | 두 비트 값이 모두 1일 때 1을 반환 |
| (OR) | 두 비트 값 중 하나라도 1일 때 1을 반환 |
^ (XOR) | 두 비트 값이 서로 다를 때 1을 반환 |
~ (NOT) | 비트 값의 보수(complement)를 반환 |
<< (왼쪽 시프트) | 비트를 왼쪽으로 이동 |
>> (오른쪽 시프트) | 비트를 오른쪽으로 이동 |
int a = 0b1100; // 12 (2진수)
int b = 0b1010; // 10 (2진수)
int and = a & b; // 0b1000 (8)
int or = a | b; // 0b1110 (14)
int xor = a ^ b; // 0b0110 (6)
int c = 0b1011; // 11 (2진수)
int leftShift = c << 2; // 0b101100 (44)
int rightShift = c >> 1; // 0b0101 (5)
int d = 0b1100; // 12 (2진수)
int bit3 = (d >> 2) & 0b1; // 1 (3번째 비트)
d |= 0b1000; // 0b1100 | 0b1000 = 0b1100 (12)
3. 복합 대입 연산자와 증감 연산자 활용
1) 복합 대입 연산자
변수에 값을 할당하는 대입 연산자(=) 외에도, 다양한 복합 대입 연산자를 제공한다. 복합 대입 연산자는 변수에 연산을 수행한 결과를 정하는 연산자이다.
연산자 | 예시 | 설명 |
+= | x += y; | x = x + y; |
-= | x -= y; | x = x - y; |
*= | x *= y; | x = x* y; |
/= | x /= y; | x = x / y; |
%= | x %= y; | x = x % y; |
2) 증감 연산자
증감 연산자는 변수의 값을 1 증가시키거나 감소시키는 연산자이다.
연산자 | 설명 |
++ | 1 증가 |
-- | 1 감소 |
4. 연산자 우선순위
1) 연산자 우선순위란
- 연산자 우선순위는 수식 내에서 연산자가 수행되는 순서를 결정한다.
- 연산자 우선순위에 따라 연산의 결과가 달라질 수 있으므로 중요한 개념이다.
2) C#의 주요 연산자 우선순위
다양한 우선순위를 가지고 있으며, 높은 우선순위의 연산자가 먼저 수행된다.
- 괄호() : 괄호로 감싸진 부분은 가장 높은 우선순위로 먼저 계산된다.
- 단항 연산자 : 산술 연산자들 (++, --, +, -, ! 등) 은 단항 연산자보다 우선순위가 낮다.
- 산술 연산자 : 산술 연산자들 (*, /, %, +, -) 는 산술 연산자보다 우선순위가 낮다.
- 시프트 연산자 : 시프트 연산자 (<<, >>)는 산술 연산자보다 우선순위가 낮다.
- 관계 연산자 : 관계 연산자들 (<, >, <=, >=, ==, !=)는 시프트 연산자보다 우선순위가 낮다.
- 논리 연산자 : 논리 연산자들 (&&, ||)는 관계 연산자보다 우선순위가 낮다.
- 할당 연산자 : 할당 연산자들 (=, +=, -=, *=, /= 등)는 논리 연산자보다 우선순위가 낮다.
5. 문자열 처리 기능 및 메서드
1) 문자열 생성 ( new string() )
string str1 = "Hello, World!"; // 리터럴 문자열 사용
string str2 = new string('H', 5); // 문자 'H'를 5개로 구성된 문자열 생성
2) 연결 ( + ) : 문자열을 공백으로 구분하여 연결
string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2;
3) 분할 ( Split('분할기준점') ) : str 문자열을 쉼표로 구분하여 분할한 문자열 배열 words를 생성
string str = "Hello, World!";
string[] words = str.Split(',');
4) 검색 ( .IndexOf ) : 문자열의 첫 번째 인덱스를 찾아 index 변수에 저장
string str = "Hello, World!";
int index = str.IndexOf("World");
5) 대체 ( Replace ) : World 문자열을 Universe 문자열로 대체한 새로운 문자열 newStr로 생성
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe");
6) 변환
string str = "123";
int num = int.Parse(str);
ㄴ문자열을 숫자로 변환
int num = 123;
string str = num.ToString();
ㄴ 숫자를 문자열로 변환
7) 비교
string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2;
ㄴ문자열 값 비교
string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2);
ㄴ문자열 대소 비교 (아무 옵션도 설정하지 않고 비교하는 경우 문자열을 사전식으로 비교하며, 대소문자를 구분한다. 즉, 'A'는 'a'보다 작다.)
8) 포멧팅
string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);
ㄴ 문자열 형식화 : name 변수와 age 변수의 값을 문자열 message에 삽입
string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";
ㄴ name 변수와 age 값을 문자에 삽입
'C#' 카테고리의 다른 글
반복문 (1) | 2024.05.01 |
---|---|
조건문 (0) | 2024.05.01 |
변수와 자료형 (0) | 2024.05.01 |
프로그래밍 기본 요소 (0) | 2024.04.26 |