불(논리) 연산

논리 부정 NOT (!)

논리 부정의 피연산자 (!) 는 산술 형식이어야 합니다. 피연산자 값이 FALSE(0)이면 TRUE(1)이고 피연산자가 FALSE(0)와 다르면 FALSE(0)의 결과가 나옵니다.

if(!a) Print("not 'a'");

논리 연산 OR (||)

x와 y값의 논리 OR 연산 (||). x 또는 y 값이 true(null이 아님)이면 표현식 값은 TRUE(1)입니다. 그렇지 않으면 - FALSE (0).

if(x<0 || x>=max_bars) Print("out of range");

논리 연산 AND (&&)

x와 y값의 논리 연산 AND (&&). x 및 y 값이 null이 아닌 True이면 표현식 값은 TRUE(1)입니다. 그렇지 않으면 - FALSE (0).

부울 연산의 간략한 추정치

이른바 "간단 추정치"의 체계는 부울 연산에 적용됩니다. 즉, 식의 결과를 정확하게 추정할 수 있을 때 식의 계산이 종료됩니다.

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                         |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 간략한 추정의 첫 번째 예
   if(func_false() && func_true())
     {
      Print("연산 &&: 이 표현은 볼 수 없을 것입니다");
    }
   else
     {
      Print("연산 &&: 첫 번째 식 결과가 거짓이므로 두 번째 식이 계산되지 않았습니다");
    }
//--- 간략한 추정치의 두 번째 예
   if(!func_false() || !func_true())
     {
      Print("연산 ||: 첫 번째 식 결과가 참이므로 두 번째 식이 계산되지 않았습니다");
    }
   else
     {
      Print("연산 ||: 이 연산을 볼 수 없을 것입니다");
    }
  }
//+------------------------------------------------------------------+
//| 이 함수는 항상 false를 반환합니다                                |
//+------------------------------------------------------------------+
bool func_false()
  {
   Print("함수 func_false()");
   return(false);
  }
//+------------------------------------------------------------------+
//| 이 함수는 항상 true를 반환합니다                                 |
//+------------------------------------------------------------------+
bool func_true()
  {
   Print("함수 func_true()");
   return(true);
  }

더 보기

우선 순위 규칙