상세 컨텐츠

본문 제목

step1 c# 기초 - 변수 와 자료형

개발생활/Unity Engine

by 한국인맛집 2022. 2. 12. 15:00

본문

반응형

Unity진행에 앞서 기본 적인 프로그래밍 기술을 익혀보려고한다.

 

 

unity를 들어가기앞서 기본적인 시작 구성은 다음과같다.

 

프로그램을 만들고 시작할때 클래스를 만들어 사용하는데.

 

자바를 알고 있는경우 c#을 배우기가 매우 편하다. 문법이 자바와 매우 유사하기 때문이다.

 

c#의 기본적인 클래스 구성은 다음과 같다.

public class MyClass{
   public static void Main(){

     Console.WriteLine("Hello World");
   }
}

 

 

자세한 클래스 와 함수에 대한 내용은 추후 배울예정이니 기본적인 틀에 대해 눈에 익혀두도록 하자.

 

 

출력함수 Console.WriteLine()

Console.WriteLine();

 

 

변수 (Variable Number)

 

말그대로 변수는 변할수 있는 수 이다.

 

변수는 수학시간에 많이 배웠던것처럼

 

a, b, number, world, _myName , state3, 

 

숫자를 제외한 값을 대입할수 있는 문자들이 변수이다.

 

C/C++, Java 와 같은 객체지향 프로그래밍 언어는 타입을 설정해줘야한다.

 

c#도 마찬가지로 변수에 타입을 지정해줘야한다.

 

 

변수를 지정할때 (네이밍) 할때 주의 사항

 

1. 변수의 시작은 숫자가 올수없다.

2. 변수의 시작은 _(언더바)나 영문자로 시작되어야한다.

3. 변수에 띄어 쓰기는 사용할수 없다.

4. 변수에 특수 문자는 사용할수 없다.

5. 단, 변수의 마지막에 숫자나 언더바 는 사용가능하다.

6. 변수는 대소문자 구분한다.

7. 키워드는 변수로 사용할수 없다 ( int, float, class, enum, for, while 등..)

 

 

c#에 정의된 키워드 종류

 

 

 

 

- 생각해보기 

다음중 옳지 않은 변수 선언은 몇번일까요?

int NumberMyName;            // 1.
float 1MyFLOatingNumber;     // 2.
string __YOURNAMEIS;         // 3.
int int                      // 4.
char charNumber;             // 5.
double double1;              // 6.

 

자료형

 

- 정수 숫자형. int, long

키워드 범위 크기
int –2,147,483,648 ~ 2,147,483,647 부호 있는 32비트 정수
long –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 부호 있는 64비트 정수

 

public class MyGame{
   public static void Main(){
     int myNumber =10;
     myNumber = 30;
     
     Console.WriteLine(myNumber);
     
     Console.WriteLine($"{myNumber}");
   }
}

 

 

- 부동소수점 숫자 형식 float, double, decimal

키워드 근사범위 전체자릿수
float ±1.5 x 10−45 ~ ±3.4 x 1038 ~6-9개 자릿수
double ±5.0 × 10−324 ~ ±1.7 × 10308 ~15-17개 자릿수
decimal ±1.0 x 10-28 ~ ±7.9228 x 1028 28-29개의 자릿수

 

 

public class MyGame{
   public static void Main(){
     float myfloatingNumber =10f;
     
     Console.WriteLine(myfloatingNumber);
     
     Console.WriteLine($"{myfloatingNumber}");     
   }
}

 

 

- bool 

bool 형식 키워드는 부울값 (true, false)를 나타내는 논리 연산 키워드 입니다.

bool은 반복문, 조건문 분기 제어하는 연산 식에 많이 사용됩니다.

 

public class MyGame{
   public static void Main(){
     bool isBool = 10 == 10;
     
     // 같은 사용법
     Console.WriteLine($"{isBool}");
     // 같은 사용법
     Console.WriteLine(isBool);
   }
}

- char

키워드 범위 사이즈
char U+0000~U+FFFF 16비트
public class MyGame{
   public static void Main(){
     char myChar = 'a';
     
     Console.WirteLine(myChar);
     
     Console.WriteLine($"{myChar}");
   }
}

 

- 문자열 string

문자열은 자료형은 아니고 클래스 단위입니다.

사용방법은 다음과 같다.

public class MyGame{
   public static void Main(){
     string weaponName = "BF Sword";
     
     Console.WriteLien(weaponName);
    
     Console.WriteLine($"{weaponName}");
   }
}

 

$ string interpolation

문자열 보간

 

문자열 보간이란 $를 기준으로 리터럴화 해준다.

리터럴이란 코드상 고정값을 말한다. 상수, 열거형, 고정적인값 변수를 제외한 값을 리터럴 이라고한다.

 

예문 출력함수 2번째 다음과같이 사용되고있다.

 

Console.WriteLine($"{number}");

 

중괄호에 변수를 문자열화 해준다.

해당 문법을 사용하면 문자열 연결, 변수와 문자열 혼합을 사용할때 상당히 편해지는 장점을 가지고 있다.

 


string name = $"저는{5}살 입니다!";
int age = 20;
name = $"구라 구요 사실 {age}살 입니다";

 

 

- 열거형 enum

열거형은 상수집합에 의해 정의하는 값의 형식

열거형은 게임개발에 있어 많이 사용되고 개발자가 숫자표기 보다 열거형을 이용하여 상태값을 표기하는데 정말 편리한 열거형 이다.

 

사용방법은 다음과 같다.

enum Job{
    Warrior = 0,
    Magician = 1, 
    Archor = 2, 
    Thief = 3
}

 

publ class Player {

	public static void Main(){
		Job j = Job.Archor;   
        
		Console.WriteLine("My Job is == > "+j);
        
		Console.WriteLine($"My Job is == > {j}");
	}

}

 

- 구조체, Structure

구조체는 데이터들을 캡슐화 하여 하나의 집합체로 사용할수 있다.

게임에서 클래스단위가 아닌 구조체 단위로 많이 사용되므로 필수적으로 알고 있어야한다.

클래스와 거의 비슷하므로 클래스 개념을 익할때 충분히 구조체 개념을 알고 있어야한다.

 

public struct Weapon{
    string name;
    int damage;
    int price;
}


public class MyGame{

  public static void Main(){
        Weapon sword = Weapon();
        sword.name = "BF Sword";
        sword.damage = "80";
        sword.price = 1800;        
        
        Console.Write("My sword is "+sword.name+
        "Damage == > "+sword.damage+
        "price == > "+sword.price);
        
        Console.WriteLne($"My sword is {sword.name}
        Damage ==> {sword.damage}
        price == >{sword.price} ");
        
  }
}

 

 

 

 

 

 

Reference

https://docs.microsoft.com/

 

개발자 도구, 기술 설명서 및 코딩 예제

개발자와 기술 전문가용 Microsoft 설명서 및 학습을 위한 홈입니다.

docs.microsoft.com

반응형

관련글 더보기