Main Content

Short-Circuit OR, ||

쇼트서킷을 사용한 논리 OR

설명

예제

expr1 || expr2논리 쇼트서킷 동작을 사용한 논리 OR 연산을 나타냅니다. 즉, expr1이 논리값 1(true)인 경우 expr2는 실행되지 않습니다. 각 표현식은 논리형 스칼라 결과를 갖습니다.

예제

모두 축소

두 개의 벡터를 만듭니다.

X = [1 0 0 1 1];
Y = [0 0 0 0 0];

XY를 쇼트서킷 OR 연산자와 실행하면 오류가 반환됩니다. 쇼트서킷 연산자는 스칼라 논리 조건만 사용하여 연산을 수행합니다.

any 함수와 all 함수를 사용하여 각 벡터를 단일 논리 조건으로 축소시킵니다.

any(X) || all(Y)
ans = logical
   1

표현식이 1 OR 0과 같으므로 첫 번째 조건인 any(X)만 계산한 후 논리값 1(true)이 됩니다.

입력 인수

모두 축소

논리식으로, 논리형 스칼라로 평가되는 유효한 MATLAB® 표현식으로 지정됩니다.

예: isscalar(x) || isvector(x)

예: (x > 1) || (x < -1)

데이터형: logical

세부 정보

모두 축소

논리 쇼트서킷

논리 쇼트서킷을 사용하면 결과가 완전히 결정되고 나면 논리식의 평가를 조기에 종료할 수 있습니다. 논리 AND 및 OR의 속성으로 인해 모든 조건을 평가하기 전에 논리식의 결과가 완전히 결정될 수도 있습니다.

  • and 논리 연산자는 표현식의 어느 한 조건이라도 false인 경우 논리값 0(false)을 반환합니다.

  • or 논리 연산자는 표현식의 어느 한 조건이라도 true인 경우 논리값 1(true)을 반환합니다.

이러한 값이 나오면 조기에 논리식의 실행이 종료되며, 이 경우 표현식이 쇼트서킷되었다고 말합니다. 이 기법을 적절하게 사용하면 코드에서 복잡한 비교를 효율적으로 수행할 수 있습니다.

예를 들어, MATLAB은 A && B 표현식에서 조건 A가 false이면 조건 B를 실행하지 않습니다. A가 false인 것이 결정되면 B의 값은 연산의 결과에 영향을 주지 않습니다.

  • if 또는 while 루프 표현식에 사용되는 경우에 한해, 요소별 &| 연산자는 쇼트서킷을 사용하여 표현식을 실행합니다.

    그러나 쇼트서킷 평가를 사용하려면 항상 && 연산자와 || 연산자를 사용해야 합니다. 표현식이 논리형 스칼라가 아닌 경우, 쇼트서킷 연산자 & 또는 |를 사용하면 예기치 않은 결과를 얻게 될 수 있습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨