Unity 데이터 유형 변수 및 상수 -2-
컴퓨터의 모든 것은 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 메서드에서 다음을 수행합니다:
- int 로 위치의 고도를 입력하라는 메시지를 표시하고 고도를 가져옵니다.
- 두 번째 위치의 고도를 int 로 입력하라는 메시지를 표시하고 고도를 가져옵니다.
- 첫 번째 지점에서 두 번째 지점으로 이동할 때 경험하는 고도 변화를 계산하여 표시합니다.
힌트: 뺄셈의 순서가 중요하므로 답에 올바른 부호를 사용했는지 확인하세요.
프롬프트 및 입력 받기
입력을 묻는 메시지를 표시하려면 다음과 같이 사용할 수 있습니다:
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);
}
}
}