맥스스크립트 기초

변수의 연산

스크립팅하는애님 2019. 7. 1. 02:11
728x90
반응형

안녕하세요.

오늘은 전에 얘기한 변수의 연산에 대해 알아보도록 하겠습니다.

변수는 타입(형식)에 따라 연산이 가능합니다.

 

숫자

숫자의 경우 우선 4칙연산이 가능합니다.

1
2
3
4
5
6
num1 = 5
num2 = 2
value1 = num1 + num2
value2 = num1 - num2
value3 = num1 * num2
value4 = num1 / num2
cs

(맥스 스크립트에서 곱하기는 '×'가 아니라 '*'로 표시되고 나누기는 '÷' 대신 '/'를 사용합니다.)

이렇게 한다면 다음과 같은 결과를 보여줍니다.

 

정수의 사칙연산

그런데 위의 결과를 보면 나누기의 경우 소수가 없습니다.

5 / 2 를 한다면 2.5가 나와야 하는데 정수만 표시됩니다.

이것은 정수와 정수의 계산은 정수로만 표시되는 맥스 스크립트의 특성 때문입니다.

정확한 계산을 원한다면

 

1
num1 = 5.0
cs

 

을 하여 num1을 실수로 바꾸던가

 

1
num2 = 2.0
cs

 

을 하여 num2을 실수로 바꾸던가

 

1
2
num1 = 5.0
num2 = 2.0
cs

 

을 하여 둘 다 실수로 바꾸면, 소수까지 포함된 결과 값을 보여줍니다.

 

실수의 값 구하기

 

이미 정수의 값으로 정해져 버린 값들로 실수의 값을 구하려면 'as float'를 이용하여 형 변환을 해주면 됩니다.

 

1
2
3
num1 = 5
num2 = 2
value4 = (num1 as float) / num2
cs

 

형변환을 이용한 방법

 

제곱 연산자는 다음과 같이 사용하면 됩니다.

 

1
2
3
num1 = 5
num2 = 2
value5 = num1 ^ num2
cs

 

제곱연산

 

복합 연산자

그 외에 알아두면 편리한 연산자가 있는데 '복합 연산자'입니다.

맥스 스크립트 작업을 하다 보면 계속 특정 값씩 증가해야 하는 카운트가 필요한데 어떤 명령을 실행할 때마다 그 명령이 몇 번이나 사용됐는지를 알기 위해

 

1
cnt = cnt + 1
cs

 

을 사용합니다.

위 명령문이 실행될 때마다 'cnt'는 1씩 증가하게 됩니다.

즉 'cnt'에 '3'이 있는 상태에서 'cnt = cnt + 1'을 하게 되면 'cnt = 3 + 1'이 되어 1이 증가한 4가 되는 것입니다.

이를 간단하게 표시하는 것을 '복합 연산자'라고 하고 다음과 같이 표기합니다.

변수 += 값

변수 -= 값

변수 *= 값

변수 /= 값

 

복합연산자

 

예로 여러 가지 숫자를 적었지만 가장 많이 사용하는 '복합 연산자'는 'a += 1'과 같이 1씩 증감하는 방식을 많이 사용하게 됩니다.

 

연산의 우선순위

수학에서도 계산의 순서가 있듯이 맥스 스크립트도 연산의 우선순위가 있습니다.

우선순위는 수학과 마찬 가지 입니다.

1 '괄호()'

2 '거듭제곱 ^'

3 '곱하기 *, 나누기 /'

4 '더하기 +, 빼기 -'

입니다.

1
(2 + 3)^2 * 4
cs

의 결과 값을 보면 계산 순서를 짐작할 수 있습니다.

연산의 순서

 

문자열

문자열은 '+'만 할 수 있습니다.

숫자와 같이 더하는 것은 아니고 문자열에 문자열을 붙이는 것입니다.

 

1
"abcd" + "efgh"
cs

 

이라고 적는 다면(문자열은 항상 큰따옴표가 따라옵니다.)

 

문자열 더하기

 

"abcdefgh"라는 결과 볼 수 있습니다.

 

만약 '문자열'과 '숫자'를 더한다면 어떻게 될까요?

 

1
"abc" + 12
cs

 

라고 적어 봅시다.

12를 문자열로 바꿀수 없다는 군요.

형이 다르기 때문에 에러가 발생합니다.

그래도 꼭 더해 보고 싶다면 원하시는 결과가 나올지는 모르지만 다음과 같은 방법을 사용하면 됩니다.

 

1
"abc" + (12) as string
cs

 

12를 문자열로 변경했습니다.

 

원하시는 결과가 나왔나요?

오늘은 변수의 연산에 대해서 공부해봤습니다.

변수의 연산은 형에 따라 다른 것과도 연산이 가능한 경우도 있고, 불가능한 연산도 있습니다.

실제 스크립트를 사용할 때문 형 변환을 자주 사용하기 때문에 이후에 스크립팅을 하면서 더 자세한 내용을 익히게 될 겁니다.

728x90
반응형

'맥스스크립트 기초' 카테고리의 다른 글

제어문(if)  (3) 2019.07.07
배열 함수  (3) 2019.07.05
배열  (6) 2019.07.03
변수의 범위  (10) 2019.07.02
변수  (0) 2019.07.01
MAXScript Listener  (0) 2019.06.30
변수와 함수의 개념  (0) 2019.06.29
맥스 스크립트의 구조  (6) 2019.06.28