[C#과 유니티, 실전 게임으로 제대로 시작하기]섹션2-1. 스터디
토큰(Token) : 뜻을 가진 최소단위. 즉, 문법적으로 더 이상 나누어질 수 없는 요소이다.
토큰의 종류
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;
int a = 1;
long b;
b = a;
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(조건식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(변수){
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(초기화; 조건식; 반복자){
반복할 코드; }
*/
ex>
void Start(){
for(int i = 0; i<=10; i+=2)
Debug.Log("i");
}
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(조건){
반복할 내용의 코드; }
*/
ex>
void Start(){
int i = 0;
while(i<10){
Debug.Log("hi");
i++;
}
}
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++;
}
}