코딩 공부/Unity C#

Unity 데이터 유형 변수 및 상수 -2-

recordmastd 2024. 6. 2. 03:23

컴퓨터의 모든 것은 binary로 나타냄(0과 1)

 

데이터 타입은 해당 정보를 알려줌.

- 특정 위치의 비트를 해석하는 방법

- 비트에 대해 수행할 수 있는 연산

 

변수와 상수의 차이

- 상수는 실행될 때 프로그램에 의해 변경될 수 없음

 

 

•Magic word: 마법이 일어나야 알아볼 수 있는 문자

ex. totalMinute = totalSecond / 60;

60은 Magic word가 되므로 int secPerMin = 60;로 변수를 정의하 60이 무슨 의미인지 알 수 있도록 표기한다

 

데이터 유형의 범위

ex. int val = 2,147,483,647인 값에 1을 더하면 - 2,147,483,648이 된다.

→ 데이터 유형의 최대값을 초과하면 음수범위로 넘어가게 됨( 2,147,483,647는 32비트로 표현할 수 있는 최대값)

GTA5 초기에 개부자였던 플레이어가 개거지가 된 사례가 있음

게임 개발에서는 대부분 int를 사용함

2에서 n과 b가 같을 때 int는 가장 낮은 음수가 가장 큰 수로, 혹은 그 반대의 일이 일어남

 

Exercise

 

문제 - 정수로 계산하기

Exercise4라는 이름의 새 C# 콘솔 앱을 만듭니다.

Main 메서드에서 다음을 수행합니다:

  1. int 로 위치의 고도를 입력하라는 메시지를 표시하고 고도를 가져옵니다.
  2. 두 번째 위치의 고도를 int 로 입력하라는 메시지를 표시하고 고도를 가져옵니다.
  3. 첫 번째 지점에서 두 번째 지점으로 이동할 때 경험하는 고도 변화를 계산하여 표시합니다.

힌트: 뺄셈의 순서가 중요하므로 답에 올바른 부호를 사용했는지 확인하세요.

프롬프트 및 입력 받기

입력을 묻는 메시지를 표시하려면 다음과 같이 사용할 수 있습니다:

Console.Write("Enter first altitude: ");

사용자가 입력한 고도를 읽고, 구문 분석하고, 저장하려면 다음과 같이 사용할 수 있습니다:

int firstAltitude = int.Parse(Console.ReadLine());

 

- int.Parse() string을 int로 변환

Xxx.Parse()는 문자열을 다른 데이터 타입으로 변환할 수 있는 함수이다.

 

 

데이터 타입을 변환하는 함수

- Convert.ToXxx();    

- ToString(); 다른 데이터 타입의 변수를 문자열로 변환

- 데이터 변환 성공 여부(bool)를 알려주는 함수: TryParse();

Convert.ToXxx() 가 더 유연하지만  Xxx.Parse()는 더 엄격한 검증을 할 수 있음. 선호도에 따라 자유롭게 사용하자.

 

 

 

답안 작성

namespace Exercise4
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter first altitude: ");
            int firstAltutude = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter second altitude: ");
            
            int secondAltitude = int.Parse(Console.ReadLine()); 
            Console.WriteLine(secondAltitude - firstAltutude);
        }
    }
}

피드백 후 답안 작성

namespace Exercise4
{
    internal class Program
    {
        /// <summary>
        /// altitude calculator 참조하는 습관 형성하기
        /// </summary>
        /// <param name="args"> </param>
        static void Main(string[] args)
        {
            // get location
            Console.WriteLine("Enter first altitude: ");
            int firstAltutude = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter second altitude: ");
            int secondAltitude = int.Parse(Console.ReadLine());

            // calculate
            int changeAltitude = secondAltitude - firstAltutude;    // magic word 방지
            Console.WriteLine();    // 한 줄 띄어쓰기
            Console.WriteLine("Altitude change: " + changeAltitude);
        }
    }
}