TIL

2024 09 05 TIL

noc777 2024. 9. 5. 16:59

이전에 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