로직

논리 블록은 수학 식이나 논리 식의 조건에 따라 다양한 연산을 수행할 수 있습니다.

다음 논리 블록은 조건의 결과에 따라 연산을 실행합니다. 값 블록 또는 논리 블록에서 [If] 또는 [If Else] 조건을 설정합니다.

다음 논리 블록은 조건에 사용할 숫자 값이나 논릿값을 출력합니다.

메모:

  • 다음 중 하나가 피연산자의 값에 발생하는 경우 그 값은 정의되지 않습니다:
    • 통신 오류(변수의 품질이 “나쁨”)

    • 범위를 벗어난 배열 요소 번호 액세스하기

    • 0으로 나눕니다.

  • 논리 블록에 정의되지 않은 값이 포함되어 있으면 결과가 정의되지 않습니다. 그러나 [논리적 조건]으로 사용되는 경우 여전히 결과를 출력할 수도 있습니다.

논리적 조건

If

이 블록은 [If] 조건이 true로 평가되면 [Do]에서 동작을 실행합니다.
블록
텍스트

'if(CONDITION){}'

메모: 스크립트를 실행하는 동안 [If] 조건이 정의되지 않은 경우 블록을 종료합니다.

If Else

이 블록은 [If] 조건이 true로 평가되면 [Do] 아래의 작업을 실행하고 [If] 조건이 false로 평가되면 [Else] 아래의 작업을 실행합니다.
블록
텍스트

'if(CONDITION){}else{}'

메모: 스크립트 실행 중에 [If] 조건이 정의되지 않은 경우 로직은 [Do]를 건너뛰고 [Else] 연산을 실행합니다.

Math

이 블록은 수학적 표현식입니다. 값 블록을 왼쪽 피연산자(X)와 오른쪽 피연산자(Y)에 삽입하고 연산자를 선택합니다.
블록
텍스트

'SOURCE1 * SOURCE2'

연산자

표현식

설명

+ X + Y 더하기
- X - Y 빼기
* X * Y 곱하기
/ X / Y 나누기
% X % Y 나누기의 나머지
& X & Y 비트 수준의 AND 연산 결과를 반환합니다. If X = 0110; Y= 1100 경우 결과는 0100입니다.
| X | Y 비트 수준의 OR 연산 결과를 반환합니다. If X = 0110; Y= 1100 경우 결과는 1110입니다.
^ X ^ Y 비트 수준의 XOR 연산 결과를 반환합니다. If X = 0110; Y= 1100 경우 결과는 1010입니다.
<< X << Y 왼쪽 시프트. X의 비트를 왼쪽으로 Y 비트 수만큼 위치를 옮깁니다. 부호를 유지합니다.
>> X >> Y 오른쪽 시프트. X의 비트를 오른쪽으로 Y 비트 수만큼 위치를 옮깁니다. 부호를 유지합니다.
>>> X >>> Y 0으로 채우기, 오른쪽 시프트. X의 비트를 오른쪽으로 Y 비트 수만큼 위치를 옮기고 왼쪽의 시프트된 비트를 0으로 채웁니다. 따라서 부호를 유지하지 않습니다.

메모:

  • AND/OR/XOR 은 항상 32비트 부호 없는 정수값을 반환합니다.
  • 입력값이 음수인 경우 비트 시프트 표현식은 32비트 정수값을 반환합니다.
  • 입력값이 양수인 경우 비트 시프트 표현식은 32비트 정수값을 반환합니다.

메모:

수학적 표현식 결과에는 소수점이 포함됩니다.

(예제 1)
다음 경우에서 INT1의 값이 101이면 결과는 10.1입니다(.1은 잘리지 않음).

블록

텍스트

'INT1 / 10'

소수점을 자르려면 floor 블록을 사용하십시오.
(예 2)
다음 경우에 INT1 값이 101이면 결과는 10입니다.

블록

텍스트

'$Math.floor((INT1 / 10))'

비교 조건

이 블록은 비교 조건입니다. 값 블록을 왼쪽 피연산자(X)와 오른쪽 피연산자(Y)에 삽입하고 연산자를 선택합니다.

블록
텍스트

'CONDITION1 == CONDITION2'

연산자

설명

<=

X 의 값이 Y 의 값보다 작거나 같은 경우 true를 반환합니다.

X = 7이고 Y = 33인 경우, X <= Y 는 true입니다.

>=

X 의 값이 Y 의 값보다 크거나 같은 경우 true를 반환합니다.

X = 32이고 Y = 10인 경우, 식 X >= Y 는 true입니다.
<

X 의 값이 Y 의 값보다 작은 경우 true를 반환합니다.

X = 7이고 Y = 38인 경우, X < Y 는 true입니다.
>

X 의 값이 Y 의 값보다 큰 경우 true를 반환합니다.

X = 27이고 Y = 14인 경우, X > Y 는 true입니다.
!=

X 의 값이 Y 의 값과 같지 않은 경우 true를 반환합니다.

X = 7이고 Y = 33인 경우, X != Y 는 true입니다.
==

X의 값이 Y의 값과 같지 않은 경우 true를 반환합니다.

X = 5이고 Y = 5인 경우, 식 X == Y 는 true입니다.

논리적 조건

이 블록은 논리 조건입니다. 값 블록을 왼쪽 피연산자(X)와 오른쪽 피연산자(Y)에 삽입하고 연산자를 선택합니다.

블록
텍스트

'CONDITION1 && CONDITION2'

연산자

설명

&&

논리적 AND

둘 다 true인 경우 true를 반환합니다.

X = true이고 Y = false인 경우, 식 X && Y 는 false입니다.

메모: 피연산자 중 하나의 값이 정의되지 않았더라도 다른 피연산자가 거짓이면 결과적으로 논리적 조건이 거짓으로 평가될 수 있습니다. 아래 표를 참조하십시오.

X Y 결과
정의되지 않음 정의되지 않음 정의되지 않음
정의되지 않음 true 정의되지 않음
정의되지 않음 false false
true 정의되지 않음 정의되지 않음
false 정의되지 않음 false
||

로직 합계

입력이 모두 false인 경우를 제외하고 true를 반환합니다.

X = true이고 Y = false인 경우, 식 X || Y 는 true입니다.

메모: 피연산자 중 하나의 값이 정의되지 않았더라도 다른 피연산자가 참이면 결과적으로 논리적 조건이 참으로 평가될 수 있습니다. 아래 표를 참조하십시오.

X Y 결과
정의되지 않음 정의되지 않음 정의되지 않음
정의되지 않음 true true
정의되지 않음 false 정의되지 않음
true 정의되지 않음

true

false 정의되지 않음 정의되지 않음

Not

이 블록은 논리 부정 또는 비트 부정을 수행합니다. 값 블록을 피연산자(X)에 삽입하고 연산자를 선택합니다.

블록
텍스트

'!SOURCE'

연산자

설명

!

논리적 NOT

Bool형 값의 역을 반환합니다.

X = false인 경우 결과는 true입니다.
˜

비트 NOT

각 비트의 역수를 반환합니다.

메모: 정수 사용 시 비트 표현식의 비트 길이는 항상 32비트입니다.

X = 0011인 경우 결과는 1100입니다.