C# 강의 1 ~ 2주차
나는 C#을 유니티에서 그냥 써보기만 했지 이렇게 본격적으로 C# 언어만 배워본 적은 없었다. 이번 기회에 여러가지를 배울 수 있을 것 같다!
string input = Console.ReadLine(); // "10 20"과 같은 문자열을 입력받음
string[] numbers = input.Split(' ');
| 이스케이프 시퀀스 | 설명 |
|---|---|
\' | 작은따옴표 삽입 |
\" | 큰따옴표 삽입 |
\\ | 역슬래시 삽입 |
\n | 새 줄(줄바꿈) 삽입 |
\r | 현재 줄 맨 앞으로 이동 |
\t | 탭 삽입 |
\b | 백스페이스 삽입 |
| 자료형 | 크기(바이트) |
|---|---|
| byte | 1 |
| short | 2 |
| int | 4 |
| long | 8 |
| float | 4 |
| double | 8 |
| char | 2 |
코드 컨벤션은 개발자들 사이에서 약속된 코드 작성 규칙이다.
1. 식별자 표기법
형변환이란 값의 자료형을 다른 자료형으로 바꾸는 것이다.
| 구분 | 예시 코드 | 설명 |
|---|---|---|
| 암시적 형변환 | int a = 100;long b = a; | 작은 타입(int) → 큰 타입(long), 자동 변환 |
| 명시적 형변환 | double x = 3.14;int y = (int)x; | 큰 타입(double) → 작은 타입(int), 개발자가 직접 변환 |
✅ 여기서 든 궁금증... 왜 형변환이 필요하지? 애초에 처음부터 자료형을 제대로 잘 쓰면 되거나 나중에 변수만 바꿔주면 되는것 아닐까?
-> 현실에서는 모든 데이터를 사람이 직접 100% 예측하고 미리 맞추는 게 불가능하다. 성능, 메모리 최적화 때문에 굳이 작은 타입으로 선언하는 경우도 있고, 작업하다보면 타입이 다른 값끼리 계산하거나 비교하는 일이 생길 수 있기 때문이다. 또한 다른 시스템이나 API와 데이터를 주고받을 때, 예를 들어 외부 API에서 float 값을 보내주는데 내 코드는 double타입을 사용중이라면 이럴 때는 형변환이 필수적이다.
string str1 = new string('A', 3); //문자 A를 3개로 구성된 문자열 생성
string[] numbers = input.Split(' '); // input 문자열을 공백으로 구분
string[] words = str.Split(','); // str 문자열을 쉼표로 구분
string str = "Hello, World!";
int index = str.IndexOf("World"); // str 문자열에서 World 문자열의 첫 번째 인덱스를 찾아 index변수에 저장한다. 즉, index = 7
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe"); // World 문자열을 Universe 문자열로 대체
문자열->숫자
string str = "123";
int num1 = int.Parse(str); // str을 정수형 숫자로 변환 후 num1 변수에 저장
숫자->문자열
int num = 123;
string str = num.ToString();
문자열 대소 비교
문자열의 길이가 중요한 것이 아니라 사전식 순서가 중요하다.
string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2); //
같다면 0, 왼쪽이 작다면 음수, 왼쪽이 크다면 양수
문자열을 비교했을 때 문자열의 길이가 아닌 각 문자의 아스키 코드 값을 기준으로 비교한다. 위 예시에서는 A가 B보다 아스키 코드 값이 작으므로 -1을 출력한다.
문자열 형식화
string name = "Nana";
string message = string.Format("Hi {0}", name);
문자열 보간
string name = "Nana";
string message = $"Hi {name}";
int[,] array3 = new int[2, 3];int[,,] array3D = new int[2, 3, 4] 대부분의 것들은 다른 언어들이랑 비슷했다. 그런데 2, 3차원 배열을 저런식으로 만드는건 처음 본 것 같아서 역시 배우길 잘했다는 생각이 든다. 아마 내일부터는 조금 강의가 어려워 질 것 같은데 내일도 잘 마무리 했으면 좋겠다.
내일은 가능하다면 3 ~ 4주차 강의를 시청하려고 한다. 속전속결!