데이터는 각각의 변수 사이즈에 따라 저장된다. 그러나 일정 사이즈에 따라 저장되지 못하는 데이터 사이즈가 존재한다.
각 데이터 사이즈는 float과 int 등 여러가지 사이즈 에 따라 저장되는데, 각 변수의 사이즈에 따라 우선권 이 존재한다.
큰 변수는 작은 변수에 들어가지 못하지만, 작은변수는 큰 변수에 자동으로 변환되어 삽입되게 된다.
크게 중요한 것 은 아니지만, 각각의 bit단위에 따라 대용량 프로그램의 효율성이 달라질 수 있기 때문에 성능을 최대한 끌어올리고 싶다면 신경쓰는것 이 좋다.
이러한 것을 보고 계산식을 새워보자.
형변환이 이루어지지 않는 (flaot)을 빼고 계산하게 되면, 데이터의 정상적인 계산이 이루어지지않음을 알 수 있다.
if문을 알아보자.
입력받은 변수의 조건이 부합하는지 검사하고 부합한다면 해당되는 코드를 실행, 아니라면 넘기는 역할을 해주는 것 이 if문 이다. if문의 동작방식을 알아보자.
위와 같은 코드를 작성하였을 때, printf에 해당하는 문자열 중 5이기 때문에 %로 나누고 나머지값이 0이 아니기 때문에 홀수 라는 문자가 출력되었다.
우리는 여기서 다른 방법으로 데이터를 처리할 수 있다. else를 붙이는 것 인데, if문은 위 주석에 달아놓은 대로 위 조건에 대한 해당하지 않는 데이터를 출력하라고 시킬 수 있다. 예시를 보자.
위와같이 작성할 수 있을것 이다. 엄밀히 말하자면 위 코드 두개는 서로 다른 동작방식을 가지나 결과는 같음을 알 수 있다.
예시 코드를 한번 작성해보자.
게임에서 흔히 쓰이는 wasd 조작방식에 대한 입력리턴을 줄 수도 있을것 이다. 재미있게도 모든 게임의 입력의 리턴은 대체적으로 이런 방식의 리턴을 사용하게 된다. 코드가 더 길어지거나 할 수는 있어도 근본적인 원리는 같다
switch에 대해 확인해보자. switch는 if와 비슷하지만 엄연히 다른 방식으로 동작하는 연산이다.
기본적인 동작 사항을 살펴보자.
switch는 위와같은 방법으로 작성하면 되며, default는 예외명령 처리로, 그에 도달하기 전 까지 case는 무한히 생성해도 된다.
코드 예시를 한번 살펴보자.
코드의 예시이다. switch를 이용하여 게임 시작화면을 명령프롬프트를 사용하여 출력하는 코드 이다.
여기서 case 1을 살펴보면, 1을 입력하였을 때 case1 을 실행하고 밑으로 내려가면서 코드를 실행하게 된다.
printf의 문장을 출력해주고, break를 사용하여 switch문에서 나간 뒤 다음 코드를 실행하게 된다.
switch는 case에 해당하는 위치로 이동 한 후 그곳에부터 실행하여 밑으로 내려간다는 코드 이고 사이에 break를 넣어주는건 필요한 부분 까지 만 실행하게 하기 위해서 이다.
else if와 switch문을 섞어서 동작하게 만들 수 도 있을것이다. 다음 예시를 통해 살펴보도록 하자.
위와 같은 출력이 나오는것 을 알 수 있다. 우리는 이러한 데이터 처리를 if로 하고 switch로 출력하는 조금 괴상한 방식이 될 수 있지만, 이러한 방식은 문자열을 통한 데이터 변환을 효과적으로 처리할 수 있을 것 이다.
'서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D' 카테고리의 다른 글
6일차 13.Array, 14.Array_sort, 15. 2D_array (0) | 2023.03.09 |
---|---|
5일차 11,12.function 13. Array (0) | 2023.03.08 |
4일차 08.RandomNumber(무작위 난수), 09.while, 10.for (0) | 2023.03.03 |
2일차 C 기초 03.operator( 연산자 ), 04.DataType(타입) (0) | 2023.02.28 |
1일차 OT [ 소개부터 공부 과정, C 기초 도입부 ] (0) | 2023.02.27 |