프로그래밍 공부
작성일
2023. 3. 2. 15:41
작성자
WDmil
728x90

데이터는 각각의 변수 사이즈에 따라 저장된다. 그러나 일정 사이즈에 따라 저장되지 못하는 데이터 사이즈가 존재한다.

각 데이터 사이즈는 float과 int 등 여러가지 사이즈 에 따라 저장되는데, 각 변수의 사이즈에 따라 우선권 이 존재한다.

 

큰 변수는 작은 변수에 들어가지 못하지만, 작은변수는 큰 변수에 자동으로 변환되어 삽입되게 된다.

이것과 같은 설명을 보면 알 수 있다.

크게 중요한 것 은 아니지만, 각각의 bit단위에 따라 대용량 프로그램의 효율성이 달라질 수 있기 때문에 성능을 최대한 끌어올리고 싶다면 신경쓰는것 이 좋다.


이러한 것을 보고 계산식을 새워보자.

각 형변환에 따른 flaot과 int의 계산방식을 볼 수 있다.

형변환이 이루어지지 않는 (flaot)을 빼고 계산하게 되면, 데이터의 정상적인 계산이 이루어지지않음을 알 수 있다.


if문을 알아보자.

입력받은 변수의 조건이 부합하는지 검사하고 부합한다면 해당되는 코드를 실행, 아니라면 넘기는 역할을 해주는 것 이 if문 이다. if문의 동작방식을 알아보자.

위와 같은 코드를 작성하였을 때, printf에 해당하는 문자열 중 5이기 때문에 %로 나누고 나머지값이 0이 아니기 때문에 홀수 라는 문자가 출력되었다.

 

우리는 여기서 다른 방법으로 데이터를 처리할 수 있다. else를 붙이는 것 인데, if문은 위 주석에 달아놓은 대로 위 조건에 대한 해당하지 않는 데이터를 출력하라고 시킬 수 있다. 예시를 보자.

위와같이 작성할 수 있을것 이다. 엄밀히 말하자면 위 코드 두개는 서로 다른 동작방식을 가지나 결과는 같음을 알 수 있다.

 

예시 코드를 한번 작성해보자.

게임에서 흔히 쓰이는 wasd 조작방식에 대한 입력리턴을 줄 수도 있을것 이다. 재미있게도 모든 게임의 입력의 리턴은 대체적으로 이런 방식의 리턴을 사용하게 된다. 코드가 더 길어지거나 할 수는 있어도 근본적인 원리는 같다

 


switch에 대해 확인해보자. switch는 if와 비슷하지만 엄연히 다른 방식으로 동작하는 연산이다.

기본적인 동작 사항을 살펴보자.

switch 작성방법

switch는 위와같은 방법으로 작성하면 되며, default는 예외명령 처리로, 그에 도달하기 전 까지 case는 무한히 생성해도 된다.

코드 예시를 한번 살펴보자.

코드의 예시이다. switch를 이용하여 게임 시작화면을 명령프롬프트를 사용하여 출력하는 코드 이다.

여기서 case 1을 살펴보면, 1을 입력하였을 때 case1 을 실행하고 밑으로 내려가면서 코드를 실행하게 된다.

printf의 문장을 출력해주고, break를 사용하여 switch문에서 나간 뒤 다음 코드를 실행하게 된다.

 

switch는 case에 해당하는 위치로 이동 한 후 그곳에부터 실행하여 밑으로 내려간다는 코드 이고 사이에 break를 넣어주는건 필요한 부분 까지 만 실행하게 하기 위해서 이다.


else if와 switch문을 섞어서 동작하게 만들 수 도 있을것이다. 다음 예시를 통해 살펴보도록 하자.

if로 조건을 달성하고 switch로 출력을 결정한다.
출력문을 확인하자.

위와 같은 출력이 나오는것 을 알 수 있다. 우리는 이러한 데이터 처리를 if로 하고 switch로 출력하는 조금 괴상한 방식이 될 수 있지만, 이러한 방식은 문자열을 통한 데이터 변환을 효과적으로 처리할 수 있을 것 이다.

728x90