본문 바로가기

취미로 하는 게임코딩_gameCodingAsHobby/유니티unity로 게임 만들기

유니티10_C#_06_토큰_Token

프로그래밍 언어의 요소들 중에서 가장 작은 부분을 Token(토큰)이라고 한다.

*token : 말이 되는 최소 단위 (단어, 기호 등)

 

앞 글에서 배열을 만들 때 사용했던 new , 조건문에 사용한 if 와 연산에 사용한 기호, 숫자 등도 모두 토큰이다.

 

토큰의 종류

 

  1. 예약어(keywords) : int, if, new 등
  2. 식별자(Identifiers) : 변수명, 함수명 또는 메서드명 등
  3. 문자(Literals) : 1, 123, 3,14, "hello" 등
  4. 연산자(Operators) : +, -, *, / , | , == 등
  5. 구분자(Punctuators) : (), {} , [], ; , : , ' , " , = 등

1. 예약어 Keyword

 

키워드(예약어)는 미리 정의해 둔 토큰이다.

특정 상황에서 사용하도록 이미 예약되어 있으므로 식별자(변수명 등)에 사용할 수 없다.

 

 

맥락별 예약어(Contextual keyword)

아래 맥락별 예약어는 코드에서 특정한 뜻을 나타내는데 사용하지만 C#에서 예약어는 아니다.

partial , where 같은 단어는 둘 이상의 context(컨텍스트) 에서 특별한 의미를 가진다.

 

 

2. 식별자 Identifier

식별자는 다른 말로 식별할 수 있는 이름표라고 할 수 있다.

변수명, 메서드(함수)명 등을 말한다.

 

식별자를 만드는 규칙

 

  1. 문자 또는 underbar( _ )로 시작해야 한다.
  2. 공백을 포함할 수 없다.
  3. 대소문자를 구분한다.

3. 리터럴 Literal

 

리터럴은 숫자 또는 문자의 값(value) 그대로를 나타낸다.

변하지 않는 값이므로 constant(상수)라고도 한다.

정수, 실수, 문자, 문자열 등 다양한 값이 있다.

 

4. 연산자 Operator

 

더하기, 빼기, 곱하기, 나누기 등의 연산에 사용되는 기호이다.

 

산술 연산자, 대입 연산자, 비교 연산자, 논리 연산자 4가지가 있다.

 

4-1. 산술 연산자.

더하기 +

빼기 -

곱하기 *

나누기 /

나눈 후 나머지 %

증감 ++ , --

 

4-2. 대입 연산자

 

대입연산자(Assignment operator)는 기호 = 을 사용한다.

'왼쪽 변수에 오른쪽 값을 대입(저장)하라'는 뜻이다.

코딩에서 a = 1 의 뜻은 a와 1이 같다는 것이 아니라 a에 1을 대입하라는 뜻이다.

 

산술 연산자와 결합해서 사용하면 다음과 같은 뜻이 된다.

+= 는 '더해서 대입'하라는 뜻이다.

 

a = a + 2;

 

위 코드의 뜻을 순서대로 적으면 다음과 같다.

'변수a에 대입하라' (무엇을?) 'a값에 2를 더한 값을'

 

a가 중복이므로 줄여서 표현하면 다음과 같다.

 

a += 2;

(변수 a에 2를 더해서 다시 대입하라)

 

이와 같은 방법으로 빼기,곱하기,나누기도 아래와 같이 사용할 수 있다.

-=

*=

/=

 

4-3. 논리 연산자

논리 연산자(Logical operator)는 true(참), false(거짓)을 연산한다.

참 또는 거짓 만을 판단하는 방식을 Boolean(불리언)이라고 한다.

 

논리를 연산하는 방법은 3가지이다.

AND

OR

NOT

 

and는 '그리고' , or은 '또는' , not은 '아니다'라는 뜻이다.

그래서 A and B 는 'A 그리고 B' 혹은 'A이고 B' 라는 뜻으로 생각하면 된다.

 

AND연산은 양쪽 모두 true일 때만 true로 연산하고 그 외는 모두 false로 연산한다.

 

즉,

true AND true 는 true

true AND false 는 false

false AND true 는 false

false AND false 는 false 이다.

 

OR 연산은 양쪽 모두 false일 때만 false로 연산하고 그 외는 모두 true로 연산한다.

 

즉,

true OR true 는 true

true OR false 는 true

false OR true 는 true

false OR false 는 false 이다.

 

논리 연산자는 코드에서 다음과 같은 기호를 사용한다.

 

AND   &

OR      |

NOT    !

 

그런데 논리 연산에서 AND의 경우 양쪽 모두 true일 때만 true이다.

만약 false가 있다면 무조건 false가 되므로 이런 경우에는 AND 기호 2개를 붙여서 &&로 사용할 수 있다.

 

예를 들어 false && true를 사용하면 결과가 무조건 false이므로 뒤에 있는 true는 확인하지 않는다.

하지만 false & true로 적으면 둘 다 어떤 값인지 확인한다.

OR도 같은 이치로 || 를 사용할 수 있다.

 

그러므로 반드시 두 값을 모두 확인해야 하는 경우가 아니라면 & 대신에 &&, | 대신에 ||을 사용하도록 한다.

이렇게 하면 (아주 작은 차이지만) 둘 다 확인하는 불필요한 연산을 줄일 수 있다.

 

NOT 기호 !는 true, false 앞에 붙이면 반대값으로 바꾸어 준다.

!true는 '참이 아니다' 이므로 false값이 된다.

!false는 '거짓이 아니다' 이므로 true값이 된다.

 

논리 연산 기호를 이용한 코드 예는 다음과 같다.

true && true

true && false

false || true 

false || false

!true

!false

 

위 논리 연산의 결과값은 다음과 같다.

true

false

true

false

false

true

 

4-4. 관계 연산자.

관계 연산자(Relational operator)는 두 값을 비교할 때 사용하는 연산자이다.

 

같다 ==

다르다 !=

보다 작다 <

보다 크다 >

작거나 같다 <=

크거나 같다 >=

 

5. 구분자 Punctuator

 

연산자를 제외한 나머지 기호들이다.

 

자주 사용하는 구분자는 다음과 같다.

 

  • 요소를 구분할 때 사용하는 (소괄호) , {중괄호} , [대괄호]
  • 명령문을 끝낼 때 사용하는 ;
  • 주석에 사용하는 // , /* */

 

C#에서는 명령문을 끝낼 때 반드시 줄 끝에 세미콜론( ; )을 붙여야 한다.

 

주석은 코드에서 실행되지 않는 부분으로 인식한다.

그러므로 주석 처리는 임시로 코드를 작동하지 않게 하거나, 참고할 메모를 기록하는데 사용한다.

// 는 한 줄을 주석 처리 할 때 사용하며, 주석 기호가 있는 이후의 한 줄은 실행되지 않는다.

 

/* */는 여러 줄을 주석으로 처리할 때 사용할 수 있다.

 

예를 들면

/* 이 줄부터 주석이다

여기는 내용이다

*/ 이 줄이 주석 끝 줄이다

 

끝.

Wraven...