C#에서 사용되는 기본 자료형
자료형 | 형식 | 크기 (바이트) | 범위 |
---|---|---|---|
sbyte | System.SByte | 1 | -128 ~ 127 |
byte | System.Byte | 1 | 0 ~ 255 |
short | System.Int16 | 2 | -32,768 ~ 32,767 |
ushort | System.UInt16 | 2 | 0 ~ 65,535 |
int | System.Int32 | 4 | -2,147,483,648 ~ 2,147,483,647 |
uint | System.UInt32 | 4 | 0 ~ 4,294,967,295 |
long | System.Int64 | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
ulong | System.UInt64 | 8 | 0 ~ 18,446,744,073,709,551,615 |
float | System.Single | 4 | ±1.5 × 10^-45 ~ ±3.4 × 10^38 |
double | System.Double | 8 | ±5.0 × 10^-324 ~ ±1.7 × 10^308 |
decimal | System.Decimal | 16 | ±1.0 × 10^-28 ~ ±7.9 × 10^28 |
char | System.Char | 2 | 유니코드 문자 |
string | System.String | 유니코드 문자열 | |
bool | System.Boolean | 1 | true 또는 false |
변수 : 데이터(숫자, 문자 등) 를 저장하고 사용하기 위한 할당받은 공간, 필요에 따라 데이터를 저장하거나 수정 가능.
변수 선언 방법
자료형 변수이름;
변수 초기화
변수이름 = 값;
식별자 (Identifiers) : 변수, 메서드, 클래스, 인터페이스 등에 사용되는 이름.
형변환
자료형이 다른 변수 간에 값을 할당하거나 연산을 수행하려면 명시적 형변환(explicit casting) 또는 암시적 형변환(implicit casting)을 해주어야 함.
int num1 = 10;
long num2 = (long)num1; //int형 -> long형
byte num1 = 10;
int num2 = num1; //byte형 -> int형
입력
C#에서 콘솔 입력을 받을 때는 Console.ReadLine 메소드를 사용.
string input = Console.ReadLine();
-> 사용자가 입력한 값이 문자열로 반환되어 input 변수에 저장
산술연산자 : 숫자를 대상으로 사용
연산자 | 설명 |
---|---|
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈 |
% | 나머지 |
관계연산자 : 두 값을 비교하여 참(True) 또는 거짓(False) 값을 반환
연산자 | 설명 |
---|---|
== | 같음 |
!= | 다름 |
> | 큼 |
< | 작음 |
>= | 크거나 같음 |
<= | 작거나 같음 |
논리연산자 : 참(True) 또는 거짓(False) 값을 대상으로 사용
연산자 | 설명 |
---|---|
&& | 논리곱(AND) |
|| | 논리합(OR) |
! | 논리부정(NOT) |
비트연산자 : 데이터의 비트(bit) 단위로 연산을 수행하는 연산자
연산자 | 설명 |
---|---|
& (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 증가시키거나 감소시키는 연산자
연산자 | 설명 |
---|---|
++ | 1증가 |
-- | 1 감소 |
문자열 처리 기능
생성
string str1 = "Hello, World!"; // 리터럴 문자열 사용
연결
string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2;
분할
string str = "Hello, World!";
string[] words = str.Split(','); //문자열을 쉼표(,)로 구분하여 문자열 배열에 저장
대체
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);
- compare 변수는 0보다 작으면 str1 < str2, 0이면 같음, 0보다 크면 str1 > str2
문자열 포맷팅
문자열 형식화
string name = "gildong";
int age = 17;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);
문자열 보간
string name = "gildong";
int age = 17;
string message = $"My name is {name} and I'm {age} years old.";
변수를 세분화 해서 사용하는 이유
1. 메모리의 효율적인 사용 : 필요한 만큼 메모리 할당
2. 정확한 데이터 표현 : 데이터 특성에 따라 정확한 표현 가능
3. 타입 안정성 : 값의 범위 지정
리터럴 (literal) : 프로그램에서 직접 사용되는 상수 값, 소스 코드에 직접 기록되어 있는 값.
예약어(reserved word) : 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어.
abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, is, lock, long, namespace, new, null, object, operator, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, void, volatile, while
코드 컨벤션(Code convention)은 개발자들 사이에서 약속된 코드 작성 규칙으로, 코드의 가독성을 높이고 유지 보수를 쉽게 하기 위해 사용
var 키워드
C# 3.0부터는 var 키워드를 사용하여 변수를 선언.
var 키워드를 사용하여 변수를 선언하면 변수의 자료형이 컴파일러에 의해 자동으로 결정.
var num = 10; // int 자료형으로 결정됨
var name = "gildong"; // string 자료형으로 결정됨
var pi = 3.141592; // double 자료형으로 결정됨
연산자 우선순위
항목 | 연산자 | 우선순위 |
---|---|---|
괄호 연산자 | () | 높음 |
증감 연산자 | ++, -- | |
산술 연산자 | -(음수) | |
*, / | ||
% | ||
+, - | ↕ | |
연결 연산자 | + | |
관계 연산자 | ==, !=, <, >, <=, >= | |
논리 연산자 | !(Not) | |
&&(And) | ||
||(Or) | 낮음 |
09:00 ~ 09:30 : 팀원 간 인사 및 하루 계획 작성
09:30 ~ 14:00 : 지급 받은 강의 복습
12시-1시: 점심식사
14:00 ~ 18:00 : 지급 받은 강의 복습
6시-7시: 저녁식사
19:00 ~ 20:00 : 학습법 특강은 ‘이렇게 공부하는게 맞는지?’
20:00 ~ 20:30 : 6조 회의
20:30 ~ 21:00 : TIL,마무리 회고 진행
감사합니다. 이런 정보를 나눠주셔서 좋아요.