이전에 C++나 PYTHON 을 조금 배운 경험이 있어 게임언어들이 어느정도 유사성을 지니고 있다는 것을
알고 있다. 하지만 지금 배우는 것은 C#과 UNITY 이기에 기초적인 부분 또한 무시할 수 없다고 생각하며 얕은 지식들에
코팅을 해보고자 한다.
이곳에서 제공한 C# 기초 문법들을 보며 C++과 C#은 유사성을 가지지만 용어적인 측면에서 차이점이 있는 것 같다. 먼저 C++은 printf(""); 나 printf_s(""); 와 같이 사용한다면 c#은 Console.WriteLine(""); 처럼 의미에 직관적인 부분이 있는 듯하다. 사실 강의 전에 이것을 먼저 숙달해야하지 않았나 싶었긴한데 워낙 의미들이 직관적인 뜻을 품고 있어 유니티 강의를 따라가는데 크게 무리있진 않았던 것 같다.
프로젝트를 생성하는 것은 한번 숙달하면 알 수 있을 것 같으니 이 곳에 적는 건 생략해야겠다.
그럼 일단 자료형을 먼저 복습한다. 자주 쓰게 될 bool string int float를 위주로 복습하기로 한다.
bool은 true와 false로만 값이 존재한다. 기본값은 false 이며 나타낼 수 있는 것이 두가지뿐이라 용량도 1byte로 매우 적다. Unity 에서는 애니메이션의 패러미터를 bool값으로 만들어서 on off 하는 듯이 사용했던 기억이 난다.
string은 문자열이다. 문자 char 랑 같이 보자면 string은 ""로 감싸며 크기 용량은 안에 적힌 문자의 갯수만큼 늘어난다. char은 ''로 감싸며 크기 용량은 2byte로 문자당 한 글자를 초과할 수 없어 대부분의 상황에선 string을 쓰는 것이 이로울 것 같다.
int는 정수형이다. 이름대로 정수를 저장할 수 있고 용량은 4byte다. 소수점 같은 경우는 int 가 처리할 수 없기 때문에 정수형을 쓸 때는 정확히 정수로만 나타낼 때인 듯 하다.
float는 double과 마찬가지로 실수를 나타낸다. 소수점을 사용하여 나타낼 때 쓰이며 소수 7자리까지 출력이 가능하다. float를 쓸 때는 뒤에 f를 꼭 붙여야한다. 왜냐하면 f를 붙이지 않을 시 double로 인식되어 오류가 나타나기 때문이다.
double은 소수 15자리까지 나타낼 수 있지만 큰 용량을 차지하는 것이 특징인 것 같다. 뒤에d를 붙이지만 생략하여도 자동으로 붙은 판정이다.
듣기로는 나중에는 자료형을 잘 사용해야 최적화를 하는데 큰 도움이 된다고 한다. 일단 기본적인 부분만 알아두도록 하자.
그리고 가끔 자료형을 다른 자료형으로 바꾸어야 할 때가 있다.
실수형을 정수형을 바꿀 때는 앞에 실수인 변수 앞에 정수형(int)를 써서 바꾸어준다.
int x = 10;
float y = 10.0f;
int z = x + (int)y;
//정수형 z를 선언할때 x+ 괄호int친 y를 더하여 z값은 문제없이 정수형을 가지게 된다.
반대로 정수형을 실수로 바꾸고 싶을 땐 그와 반대로 정수형앞에 실수(float)를 괄호치고 붙여주면 된다.
int x = 10;
float y = 10.0f;
float z = (float)x + y;
//실수 변수 z를 선언할때 괄호치고 float를 적어 붙여 정수형은 실수 값이 된다.
사실 괄호치고 이런 과정 없이도 가능은 하지만 이 과정에서 데이터의 손실이 발생할 수 있기에
괄호를 치고하는 것이 좋을 때가 있다.
int x = 10;
float y = 10.0f;
float z = x + y;
//이 경우는 정수 x는 10에서 10.0으로 바꾸어도 손실이 전혀 없지만
int x = 10;
float y = 10.5f;
int z = x + y;
//이런 상황이라면 float y의 10.5f 값은 0.5가 빠진 10으로 치환되어 0.5의 값이 손실이 된다.
이번엔 다른 자료형에서 문자로 바꾸는 방법이다.
int x = 10;
string xStr = x.ToString();
// "10"
float y = 10.5f;
string yStr = y.ToString();
// "10.5"
bool myBool = true;
string boolStr = myBool.ToString();
// "true"
문자형으로 바꿀때는 변수뒤에 .ToString();을 써주면 문자열로 치환된다.
그리고 문자에서 다른 자료형으로 바꿀 때는
Conver이용
string iStr = "10";
int x;
x = Convert.ToInt32(iStr); // x : 10
//정수형으로 바꿀때 Convert.ToInt32(문자열변수); 이런식으로 사용되었다.
string bStr = "true";
bool b;
b = Convert.ToBoolean(bStr); // b : true
//그리고 Bool으로 바꿀때 Convert.ToBoolean(문자열변수); 이 경우는 오타라도 날 경우 바로 오류가 날 것 같다.
문자열에서 다른 자료형으로 바꾸어야할 때 준비 할 것이 꽤 있는 듯하다. 일단은 넘어가서 다음 내용을 공부하도록 한다.
+ = * / % 각각 합 차 곱 몫 나머지 ++ 증가 연산자 -- 감소 연산자
이 부분은 알고 있던 내용이라 전위 후위만 복습한다.
전위와 후위의 차이는 전위는 해당 줄에 있는 처리를 먼저하고 후위는 줄의 내용이 끝났을 때 처리한다는 것이다.
int x = 10;
Console.WriteLine(x++); //x=10
Console.WriteLine(x); //x=11
int y = 10;
Console.WriteLine(++y); //x=11
Console.WriteLine(y); //x=11
결국 출력되는 값은 11로 같지만 중간식에 x 값이 다르다는 것이 차이점이다.
비교연산자는 대부분 쓰이기 때문에 일단 다시 외운다.
'TIL' 카테고리의 다른 글
2024 09 09 TIL (0) | 2024.09.09 |
---|---|
2024 09 06 TIL (0) | 2024.09.06 |
2024 09 04 TIL (3) | 2024.09.04 |
2024 09 03 TIL (1) | 2024.09.03 |
2024 09 02 TIL (1) | 2024.09.02 |