Unity3D/C#

C# 강좌 Day-02 (변수와 값)

일등하이 2021. 8. 14. 22:13
반응형

게임에서 유저가 볼수 있는 데이터와 볼수 없는 데이터 모두 값이다. 

이미 정해진 데이터든 플레이중 변경 되는 데이터든 모두 값이다. 

<쿠키런 킹덤>

 

이 값은 크게 숫자와 문자로 나누어 볼수 있다. 

플레이 도중 변경되는 값 (데이터)를 찾아 보자 

 

다이아, 골드, 레벨, 경험치 등이 있을것이다. 

그럼 변경되지 않는 데이터는 무엇이있을까? 

그렇다. 메뉴의 이름 스테이지 이름, 버튼의 이름등이다. 

 

이런 데이터들은 게임이 시작되기 전에 미리 어딘가에 저장해 놓고 있다가 게임이 시작되면 (프로그램이 실행되면)

유저에게 보여주게 된다. 

 

그럼 어딘가에 저장해 놔야 하는데 어딘가는 어디인가?

 

정답은 메모리다. 

<메모리 부족>

우리가 실행하고 있는게임은 OS로부터 메모리를 할당 받아 프로그램이 실행된다. 

메모리는 휘발성이다. 

프로그램이 실행되고 종료 되면 저장된 데이터는 사라지게 된다. 

그래서 파일이나 서버를 통해 데이터베이스에 데이터를 저장하는것인데 이부분은 아직 생각 하지 말자

데이터가 저장되는 공간 즉, 메모리라는 것을 기억하자 

 

 

C#에서 어떠한 데이터(값)을 저장(메모리에) 하는 방법에 대해 알아보자 

 

변수 : 값을 담는 상자 (메모리 주소)

언제든지 변수에 값을 저장 할수 있고 (사실 변수에 저장하는것이 아니라 변수에 할당된 메모리 주소에 저장하는것)

언제든지 저장된 값을 가져올수 있다 (프로그램이 실행되는 동안)

 

변수의 선언및 정의 

> 변수를 선언 한다는 것은 메모리를 확보 한다는 뜻이다.

 

타입 변수명; 

 

타입은 변수에 저장할수 있는 값의 타입을 이야기 한다 

예를 들어 숫자 상자 (변수)에는 숫자만 저장할수 있다 

 

C#에서 숫자는 크게 정수, 실수로 나뉜다 

여기서 정수 타입은 int , 실수 타입은 float을 사용한다.

 

정수형 변수 를 선언해본다 

int damage;

 

실수형 변수를 선언해보자 

float hp;

 

이밖에도 여러 정수타입과 여러 실수 타입이 있지만 지금 중요한게 아니다. 두가지만 기억하자 

정수 : int

실수 : float

 

다음은 변수에 값을 저장해보자 

 

변수에 값 (데이터) 할당 (저장)

= 은 같다라는 뜻이 아니라 오른쪽 값을 왼쪽 변수에 대입(할당)하는 것이다.

 

int damage;
damage = 10;

실수형 변수에 값을 저장할때 값뒤에 f 접미사를 붙여줘야 한다.

float hp;
hp = 15.5f;

 

다음은 변수를 선언하면서 할당해보자 

int damage = 10;
float hp = 15.5f;

변수의 값을 출력한다 

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            int damage = 10;
            float hp = 15.5f;

            Console.WriteLine(damage);
            Console.WriteLine(hp);
        }
    }
}

 

문자열(문자들의 집합) 변수를 선언한다 

문자열 : string  

string name;

 

값을 할당 한다 

name = "홍길동";

출력한다 

Console.WriteLine(name);

문자열 값은 "" (큰따옴표)안에 데이터(값)을 넣으면 된다

큰따옴표 안에 있는 값은 모두 문자열로 변한다는것을 주의한다.

 

 

출력하는 다른 방법 

문자열 표현식 

""안에 반드시 {0} 으로시작 하는 인덱스가 있어야 한다 

매칭되는 값 또는 변수를 , 를 찍고 넣어준다 

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            int damage = 10;
            float hp = 15.5f;
            string name;
            name = "홍길동";
            Console.WriteLine("{0} {1} {2}", name, damage, hp);
        }
    }
}

 

 

자주 실수 하는 장면 

int damage = 10;
float hp = 15.5f;
string name;
name = "홍길동";
Console.WriteLine("{0} {1} {2}", name, damage);

 

 

 

에러는 안나지만 결과는 다르다 

int damage = 10;
float hp = 15.5f;
string name;
name = "홍길동";
Console.WriteLine("{0} {1}", name, damage, hp);

 

 

연습문제 10개 하기 

https://kr.diablo3.com/en-us/item/veil-of-steel-p43_RetroHelm_003

 

 

 

도전 과제 

 

소수점 뒤에 0 붙이기 

float aps = 1.30f;
Console.WriteLine(aps);

 

 

 

[해결]

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            float aps = 1.30f;
            Console.WriteLine("{0:f2}", aps);
        }
    }
}

반응형