C#과 유니티2-1

망고·2023년 11월 1일

C#과 유니티

목록 보기
2/10
post-thumbnail

[C#과 유니티, 실전 게임으로 제대로 시작하기]섹션2-1. 스터디

토큰

토큰(Token) : 뜻을 가진 최소단위. 즉, 문법적으로 더 이상 나누어질 수 없는 요소이다.

토큰의 종류

  • 예약어(키워드) : C#에서 미리 정의해둔 토큰
  • 식별자 : 이름을 가리키는 토큰
  • 리터럴 : 값을 가리키는 토큰
  • 연산자 : 연산을 하기 위한 토큰
  • 구분자 : 특정 요소를 문법적으로 구분하기 위한 토큰

ex>

int a = 1;

int : 예약어
a : 식별자
= : 연산자
1: 리터럴
; : 구분자

변수와 자료형

변수

변수 : 값을 담는 그릇이라 생각하면 된다.

자료형

자료형 : 그릇의 모양이라 생각하면 된다.

자료형 종류

자료형종류
정수형int, long, byte
실수형float, double
문자형char, string
논리형bool
object모든 값을 가질 수 있다.

** byte는 8bit, int는 32bit, long은 64bit의 메모리를 가진다.

** 실수형은 기본으로 double로 인식하기 때문에 float을 선언할 때는 실수 뒤에 f를 붙인다.

** char으로 선언할 때 ''를 사용하고, string으로 선언할 때 ""를 사용한다.

** bool은 true와 false 두 가지 값만을 가진다.

** object는 모든 값을 담을 수 있다. 그만큼 성능적으로 많은 메모리를 필요로 하기에 변환하는 과정에서 큰 메모리 낭비가 된다.

ex>

float a = 1.7f;
double b = 1.3d;
char c = 'a';
string d = "apple";
bool e = false;

형변환

  • 암시적(implicit) 형변환 : ex> int -> long으로 바꿀 수 있다. long이 int보다 공간이 크기에 가능하다.
int a = 1;
long b;

b = a;
  • 명시적(emplicit) 형변환 : ex> long -> int으로 바꿀 수 없다. 컴파일 에러가 발생한다.
int a = 1;
long b = 10000000000000000;

//a = b; //컴파일 에러가 발생한다.
a = (int)b; //() -> 형변환 연산자, 캐스팅 연산자라고 한다.

배열

배열 : 같은 타입의 변수를 여러개 선언하기 위한 데이터 구조

배열 선언

 // 자료형[] 식별자 = new 자료형[배열의 크기];

ex>


int[] scores = new int[5]; //크기가 5인 score배열 -> [0,0,0]
int[] scores2 = new int[]{1,2,3}; // {1,2,3}으로 초기화 가능하다.
int[] scores3 = {1,2,3} // 윗 행과 같은 의미를 가진다. new int[]축약가능하다.

** new : 형식의 새 인스턴스를 만든다. 즉, 메모리 공간에 새로운 공간을 만들어 준다.

연산자

연산자종류
산술연산자+,-,*,/,%,++,--
대입연산자=, 산술연산자와 결합하여 사용(ex> a+=b)
논리연산자&&, !, OR
비교연산자>, < , <=, >=, ==

조건문

if문

if문 선언

/*
	if(조건식1){조건식1이 참일 때 실행할 코드;} 
	else if(조건식2){조건식1이 거짓이고 조건식2는 참일 때 실행할 코드;}
	else {조건식1과 조건식2가 거짓일 때 사용할 코드;}
*/ 

ex>

 void Start(){

int number = 5;

if(number == 5)
	Debug.Log("값이 5입니다.");
else if(number == 1)
	Debug.Log("값이 1입니다.");
else
	Debug.Log("값을 출력할 수 없습니다.");
}
	

switch문

switch문 선언

 /*
 	switch(변수){
 	case 값1:
    	조건이 값1과 같을 때 실행할 코드
    break;
   	case 값2:
    	조건이 값2과 같을 때 실행할 코드
    break;
    default:
    	값1,2 외 다른 값일 때 실행할 코드
    break;
*/

** 변수가 여러가지 케이스로 나누어질 경우에만 사용하는 것이 좋다.

ex>

void Start(){

int number = 5;

switch(number){
	case 1:
    	Debug.Log("값이 1입니다");
    break;
    case 3:
    	Debug.Log("값이 3입니다");
    break;
    default:
    	Debug.Log("값이 1과 3이 아닙니다.");
    break;
    }
   
}

반복문

for문

for문 선언

/*
	for(초기화; 조건식; 반복자){
	반복할 코드; }
*/

ex>

void Start(){

for(int i = 0; i<=10; i+=2)
 Debug.Log("i");
 
}

foreach문

foreach문 선언

/*
	foreach(변수타입 변수식별자 in 배열의식별자{
	반복할 내용 코드; }
*/

ex>

int[] numbers = {1,2,3};

void Start(){
foreach(int number in numbers){
	Debug.Log(number);
	}
}
/* for(int i = 0; i < numbers.Length; i++){
	Debug.Log(numbers[i]);
	}
    foreach 코드의 출력값과 동일하다.
*/

** 일반적이고 모든것을 표현할 수 있는 for문을 중점적으로 사용하는것이 좋다.

while문

while문 선언

/*
	while(조건){
	반복할 내용의 코드; }
*/

ex>


void Start(){
int i = 0;
while(i<10){
	Debug.Log("hi");
    i++;
	}
}

continue, break

break : 현재 실행하고 있는 문을 빠져나간다.


void Start(){
int i = 0;
while(true){
	if(i>=10)
		break;
	Debug.Log(i);
    i++;
	}
}

continue : 다음 반복으로 넘어간다.


void Start(){
int i = 0;
while(i<10){
	if (i%2 == 1){
    	i++;
    	continue;
      }
    Debug.Log(i);
    i++;
	}
}

0개의 댓글