C# 입문 (변수와 자료형)
오늘 드디어 사전캠프때 부터 기다리던 C# 기초 문법에 대해 강의가 올라왔다. 전에 대학교에서 C++이랑 Python을 배울때도 그랬지만 어떤 코드를 배우든 변수와 자료형은 컴퓨터 언어의 처음이자 컴퓨터와 대화의 첫 발자국입니다.
변수와 자료형을 한글로 비유하면 자음과 모음같은 느낌이다. 이 두가지를 알아야 컴퓨터와 대화가 가능기 때문입니다.
물론 자음과 모음을 안다고 바로 대화를 할 순 없겠지만 이 두가지 조차 모르면 대화를 시도 조차 할 수 없기에 변수와 자료형은 컴퓨터 언어의 시작이자 자음과 모음 같은 것 입니다.
자료형 (Data Type)
자료형(Data Type)은 데이터를 식별하는 분류로 데이터의 종류와 크기를 정의합니다.
C#에서 가장 많이 사용되는 기본 자료형은 다음과 같습니다.
자료형 | .NET 데이터 타입 | 크기(byte) | 범위 |
byte | System.Byte | 1 | 0 ~ 255 |
int | System.Int32 | 4 | -2,147,483,648 ~ 2,147,483,647 |
long | System.Int64 | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
float | System.Single | 4 | ±1.5 × 10^-45 ~ ±3.4 × 10^38 |
double | System.Double | 8 | ±5.0 × 10^-324 ~ ±1.7 × 10^308 |
char | System.Char | 2 | 유니코드 문자 |
string | System.String | 유니코드 문자열 | |
bool | System.Boolean | 1 | true 또는 false |
-이러한 기본 자료형을 사용하여 변수를 선언하고 값을 저장할 수 있습니다.
-각각의 자료형은 메모리의 크기와 표현 범위가 다르기 때문에 byte를 이용하여 숫자를 저장한다고 했을때 255번째를 넘는 숫자를 저장이 불가능 함으로 내가 사용할 변수를 세분화하여 필요한 만큼의 메모리의 크기와 표현 범위를 잘 생각해서 자료형 선택을 해야 합니다.
변수 (Variable)
변수(Variable)는 데이터(숫자, 문자)를 저장하고 필요에 따라 수정하고 사용하기 위해 할당 받은 공간입니다.
변수명
- 키워드 (Keywords)
- 컴퓨터 언어에는 이미 예약된 단어들이 있기 때문에 변수,메소드, 클래스 등의 이름으로 사용할 수 없습니다.
- C#의 키워드로는 아래 링크를 참조 하시면 됩니다.
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/
- 식별자 (Identifiers)
- 식별자란 변수, 메서드, 클래스, 인터페이스 등에 사용되는 이름을 말합니다. 이 이름은 키워드와 동일하게 사용할 수 없습니다.
- 식별자를 사용할 때 주의 사항이 있습니다.
- 첫 문자는 알파벳, 언더바( _ ) 가능
- 두번째 문자부터는 숫자 가능
- 대소문자를 구분
- 키워드와 같은 이름으로 사용 불가
// 사용 가능
int UserCode;
string UserName;
float _itemNum;
// 비추천 (중요 의미 있는 변수명 짓기)
int x1; // 변수명이 의미를 알기 어려움
string a; // 변수명이 명확하지 않음
// 사용 불가
int 1stNumber; // 변수명은 숫자로 시작할 수 없음
string my-name; // 변수명에 하이픈(-)을 사용할 수 없음
float total$; // 변수명에 특수문자($)를 사용할 수 없음
bool null; // 변수명에 키워드를 사용할 수 없음
형변환 (Type Casting)
형변환이란 변수의 자료형을 즉 데이터 타입을 다른 데이터 타입으로 변환하는 것을 말합니다.
- 명시적(explicit) 형변환
- 명시적 형변환은 변환할 데이터의 앞에 변환할 자료형을 괄호안에 넣어 형변환을 진행합니다.
int num1 = 10
long num2 = (long)num1; //int를 long으로 명시적 형번환
// [(형변환할 타입)][형변환할 값]
- 암시적 (implicit) 형변
- 암시적 형변환은 여러가지의 경우가 있습니다
//작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는경우
//byte, short, char 등 작은 데이터 타입에서
//int, long, float 등 더 큰 데이터 타입으로 대입할 때 암시적 형변환이 발생합니다.
byte num1 = 10;
int num2 = num1; // byte형에서 int형으로 암시적 형변환
//리터럴 값이 대입되는 경우
//C# 컴파일러는 리터럴 값의 데이터 타입을 판별하여 변수에 암시적으로 형변환 합니다
float result = 1; // 1은 int형 리터럴 값이지만 float형으로 암시적 형변환
//정수형과 부동소수점형 간의 연산을 수행하는 경우
//정수형과 부동소수점형의 연산 결과는 부동소수점형으로 변환됩니다.
int num1 = 10;
float num2 = 3.14f;
float result = num1 + num2; // int형과 float형의 덧셈에서 float형으로 암시적 형변환
이렇게 암시적 형변환은 프로그래머가 직접 형변환 코드를 작성하지 않아도 자동으로 형변환을 하므로 코드를 간결하게 작성할 수 있습니다.
하지만, 암시적 형변환이 발생하는 경우 데이터 타입을 신중하게 고려하여 작성해야 합니다. 만약 고려하지 않고 작성을 하게 된다면 오류가 발생함으로 잘 고려하여 작성해야 합니다.