인디 게임 강좌

전체보기

모바일 상단 메뉴

본문 페이지

[게임메이커] 처음 만나는 GMS2 // 3. GML - 연산자

Zpink
조회: 3020
추천: 1
2017-07-03 18:23:20




1. 사칙연산

2. Mod

3. 전위연산, 후위연산

4. 비교 연산

5. AND, OR, XOR


이번 시간에는 연산자에 대해서 알아보도록 하겠습니다. 앞서 우리가 변수와 변수의 영역에 대해 알아보며 '+' 기호를 사용했었는데, 이처럼 변수는 기호를 이용해 어떠한 값을 더하거나 빼는 등의 행위를 할 수 있습니다. 




1.사칙연산





변수에는 덧셈, 뺄셈, 곱셈, 나눗셈이 가능합니다. 

기호는 각각 +, -, *, / 입니다.

나눗셈의 경우, 나머지는 버리고 몫만을 얻을 수 있습니다.

위의 스크린샷과 같은 코드를 직접 입력해 어떤 식으로 작동하는지 확인해보도록 하겠습니다.

변수에 숫자 값을 넣어 선언한 후, 텍스트 출력 함수를 이용해 변수끼리 사칙연산을 한 값을 확인해볼 것입니다. 





결과는 이렇게 나옵니다. 

위에서부터 차례로 10 + 5, 10 - 5, 10 * 3, 10 / 5 였지요. 





또한 사칙연산은 +=, -=, *=, /= 와 같은 방식으로도 표현이 가능합니다.



 

num1 += 2; 

num1 = num1 + 2;




위 두가지의 연산은 같은 기능을 수행합니다.





num1, num2, num3, num4는 모두 8의 값을 가지고 있습니다.

첫번째 줄은 num1 += 2 이고 결과는 num1 = num1 + 2; 와 동일한 10입니다.

두번째 줄은 num2 -= 2 이고 결과는 num2 = num2 - 2; 와 동일한 6입니다.

세번째 줄은 num3 *= 2 이고 결과는 num3 = num3 * 2; 와 동일한 16입니다.

네번째 줄은 num4 /= 2 이고 결과는 num4 = num4 / 2; 와 동일한 4입니다. 



2.Mod




위에서 저는 나눗셈 연산자가 나머지를 버린다고 하였습니다. 그러면 만약에 나머지를 얻고 싶다면 어떻게 해야할까요. 바로 Mod 연산자를 사용하시면 됩니다. 5를 Shift 키 누르고 입력하면 나오는 특수문자 % 가 바로 mod입니다. 



값이 7인 num1과 값이 4인 num2를 Mod 연산하여 얻은 결과로, 7을 4로 나누고 난 나머지인 3을 출력합니다.





3.전위연산, 후위연산 




전위연산과 후위연산에 대해서 알아보도록 하겠습니다. 

전위 연산은 ++변수 의 식으로 표현합니다. 해당 변수의 값을 1 더합니다. 만약 --변수 와 같은 식으로 입력하였다면 해당 변수의 값을 1 뺍니다.

후위 연산은 변수++ 나 변수-- 의 식으로 표현합니다. 후위연산을 거친 경우 당장은 값이 더해지거나 빠지진 않지만, 바로 다음줄에 그 결과가 반영됩니다. 



위의 스크린샷과 같이 저는 1의 값을 가진 num 변수에 전위연산과 후위연산을 모두 사용해보았습니다. 직접 눈으로 보시면서 확인하는 것이 좋겠군요. 








앞서 변수 num은 1로 선언하였습니다. 그리고 출력결과는 순서대로 


++num 

num++

--num

num--

num 


입니다.


첫번쨰 줄에서 전위 증가 연산이 이루어졌으므로 값은 2가 됩니다.

두번째 줄에서 후위 증가 연산이 이루어졌으므로 세번째 줄에서 값이 3이 될것입니다.

세번째 줄에서 전위 감소 연산이 이루어지는데, num 값이 3이기 때문에 3에서 1을 감소한 값인 2가 됩니다. 

네번째 줄에서 후위 감소 연산이 이루어졌으므로 다섯번째 줄에서 값이 1이 될 것입니다.

다섯번째 줄에서는 num을 그대로 출력합니다. 값이 1인 것을 확인하실 수 있습니다.




4.비교 연산




변수의 크기를 비교하는 다양한 비교연산이 존재합니다 


A 연산 B인 경우, A가 B보다

같은 경우를 표현하는 '=='

크거나 같은 경우를 표현하는 '=>'

작거나 같은 경우를 표현하는 '<="

큰 경우를 표현하는 '>'

작은 경우를 표현하는 '<'

그리고 같지 않을 경우를 표현하는 '!='

가 있습니다.


위의 스크린샷에서는 1의 값을 가진 num1, 2의 값을 가진 num2를 비교합니다.

if(조건) {표현1} else{표현2} 이라는 구문이 있는데, 이것은 조건문을 뜻하며, 조건을 만족하는 경우 표현1을 실행하고, 아닐 경우 표현2를 실행합니다. 자세한 것은 추후 조건문과 반복문을 설명하는 글을 통해 모두 다루도록 하겠습니다.





위 코드의 결과는 이러합니다. 






5.AND, OR, XOR




AND와 OR, 그리고 XOR을 표현하는 기호는 각각 &&, ||, ^^ 입니다.

해당 연산은 주로 조건문에 여러가지 조건을 넣기 위해서 사용합니다.

위의 코드는 James라는 문자열을 가진 name 변수, 12345라는 정수를 저장한 password 변수를 이용해 조건문을 작성한 것입니다.


10~15

이름이 James이면서 비밀번호가 12345인 경우 Welcome을 출력한다

그렇지 않으면 Fail을 출력한다.


17~22

이름이 Mike이거나 비밀번호가 12345인 경우 Welcome을 출력한다

그렇지 않으면 Fail을 출력한다. 


24~29

이름이 James거나 비밀번호가 12345인 경우 중 하나만 만족하면 Welcome을 출력한다.

모두 참이거나 모두 거짓인 경우는 Fail을 출력한다. 





위의 코드를 출력한 결과입니다.

Lv1 Zpink

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징