
오늘 학습 키워드
C# 기본, C# 문법 기초
오늘 학습 한 내용을 나만의 언어로 정리하기
C#과 .Net Framework
- C# : 객체 지향 프로그래밍 언어. 강력한 형식 시스템과 가비지 컬렉션 기능이 특징
- .Net Framework : 프로그래밍 플랫폼. 코드 → 컴파일 → 중간언어 → 각 머신에 맞는 언어로 변환함
C# 프로젝트 실행파일 위치
- 프로젝트 폴더\bin\Debug\net8.0\프로젝트명.exe
전역 Using
- 상단에 프로젝트 → 프로젝트명 속성 → 전역 using

자주 사용되는 부분을 알아서 추가해 둠
C# 기초 문법
출력
- Console.WriteLine() : 출력 후 줄넘김
- Console.Wirte() : 출력
- 이스케이프 시퀀스
이스케이프 시퀀스 | 설명 |
---|
\‘ | 작은따옴표(’) 삽입 |
\“ | 큰따옴표(”) 삽입 |
\\ | 역슬래시() 삽입 |
\n | 새 줄(줄바꿈) 삽입 |
\r | 현재 줄 맨 앞으로 이동 |
\t | 탭 삽입 |
\b | 백스페이스 삽입 |
주석
-
// : 한 줄 주석
-
/* */ : 여러 줄 주석
-
참고 :
- Ctrl + K, C : 주석 달기
- Ctrl + K, U : 주석 풀기
자료형
- 자주 사용되는 자료형
(바이트는 운영체제에 따라 다를 수 있음)
데이터타입 | 이름 | .Net 데이터타입 | 바이트 |
---|
정수 | int | System.Int32 | 4 |
정수 | long | System.Int64 | 8 |
실수 | float | System.Single | 4 |
실수 | double | System.Double | 8 |
문자 | char | System.Char | 2 |
문자열 | String | System.String | ? |
불리언 | bool | System.Boolean | 1 |
- 자료형을 세분화하면 메모리를 효율적으로 사용할 수 있고, 데이터를 정확하게 표현할 수 있으며, 타입 안정성을 지킬 수 있다.
리터럴
- 프로그램에서 우리가 직접 쓰는 상수값. (ex. 10, a, 3.14)
- 정수형 리터럴
표현 | 데이터 타입 |
---|
10 | int |
0x10 | 16진수 int |
0b10 | 2진수 int |
10L | long |
10UL | Unsigned Long |
표현 | 데이터 타입 |
---|
3.14 | double |
3.14f | float |
3.14m | decimal |
표현 | 데이터 타입 |
---|
’A’ | char |
’\n’ | 개행 문자 |
’\u0022’ | 유니코드 문자 |
변수
자료형 변수명;
변수명 = 값;
자료형 변수명 = 값;
// 한 번에 여러 변수를 같은 값으로 초기화
자료형 변수명1 = 변수형2 = 변수형3 = 값;
byte num1 = 10;
int num2 = num1; // byte -> int 암시적으로 형변환
참고 : 정수형과 부동소수점형 간의 연산을 수행하는 경우 그 결과는 부동소수점형으로 변환됨.
입력
- Console.ReadLine() : 한 줄 입력 받음. 반환값은 String
- string.Split(’ ’) : 문자열을 구분하여 배열로 반환. 매개변수는 구분자
var
- C# 3.0부터 추가된 기능
- var 키워드를 사용하면 초기화하려는 값의 자료형에 따라 변수의 자료형이 결정됨.
var num = 10; // num = int
var name = "hyerim"; // name = string
var pi = 3.141592; // pi = double
- 변수를 선언하는 시점에서 변수의 자료형을 정확히 알 수 없는 경우에 유용하게 사용할 수 있음
연산자
- 산술 연산자 : 숫자를 대상으로 사용되는 연산자
- 관계 연산자 : 두 값을 비교해 True 또는 False로 결과가 나오는 연산자
연산자 | 설명 |
---|
== | 같음 |
!= | 다름 |
> | 큼 |
< | 작음 |
>= | 크거나 같음 |
⇐ | 작거나 같음 |
- 논리 연산자 : 비교하는 대상이 True 또는 False
연산자 | 설명 |
---|
&& | 논리곱(AND) |
|| | 논리합(OR) |
! | 논리부정(NOT) |
연산자 | 설명 |
---|
& (AND) | 두 비트 값이 모두 1일 때 1을 반환 |
(OR) | 두 비트 값 중 하나라도 1일 때 1을 반환 |
^ (XOR) | 두 비트 값이 서로 다를 때 1을 반환 |
~ (NOT) | 비트 값의 보수(complement)를 반환 |
<< (왼쪽 시프트) | 비트를 왼쪽으로 이동 |
>> (오른쪽 시프트) | 비트를 오른쪽으로 이동 |
- 복합 대입 연산자 : 할당을 하는 대입 연산자에 산술 연산자를 더해 동시에 수행
연산자 | 예시 | 설명 |
---|
+= | 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; |
- 증감 연산자 : 변수의 값을 1 증가시키거나 감소시킴
- 연산자 우선순위
- 괄호 ()
- 단항 연산자(++, —, +, -, ! )
- 산술 연산자(*, /, %, +, -)
- 시프트 연산자(<<, >>)
- 관계 연산자(<, >, ⇐, >=, ==, !=)
- 논리 연산자(&&, ||)
- 할당 연산자(=, +=, -=, *=, /= )
문자열 처리
string str1 = "Hello World"; // 리터럴 문자열 사용
string str2 = new string('H', 5); // 문자 'H'를 다섯 번 쓴 문자열 생성
string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2; // + 연산자로 연결
string str = "Hello World";
string[] words = str.Split(' '); // 공백을 기준으로 분할하여 문자열 배열에 저장
string str = "Hello, World!";
int index = str.IndexOf("World"); // 첫 번째로 등장하는 위치의 인덱스를 반환
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe");
string str = "123";
int num = int.Parse(str);
int num = 123;
string str = num.ToString();
string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2
string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2); // 사전식 비교.
// str1 < str2 = 0 미만
// str1 == str2 = 0
// str1 > str2 = 0 초과
string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);
string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";
내일 학습 할 것은 무엇인지
조건문과 반복문 학습