안녕하세요.
오늘은 전에 얘기한 변수의 연산에 대해 알아보도록 하겠습니다.
변수는 타입(형식)에 따라 연산이 가능합니다.
숫자
숫자의 경우 우선 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을 실수로 바꾸던가
이미 정수의 값으로 정해져 버린 값들로 실수의 값을 구하려면 '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 |
라고 적어 봅시다.
형이 다르기 때문에 에러가 발생합니다.
그래도 꼭 더해 보고 싶다면 원하시는 결과가 나올지는 모르지만 다음과 같은 방법을 사용하면 됩니다.
1
|
"abc" + (12) as string
|
cs |
원하시는 결과가 나왔나요?
오늘은 변수의 연산에 대해서 공부해봤습니다.
변수의 연산은 형에 따라 다른 것과도 연산이 가능한 경우도 있고, 불가능한 연산도 있습니다.
실제 스크립트를 사용할 때문 형 변환을 자주 사용하기 때문에 이후에 스크립팅을 하면서 더 자세한 내용을 익히게 될 겁니다.
'맥스스크립트 기초' 카테고리의 다른 글
제어문(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 |