본문 바로가기
프로그래밍/C#

C# Eager Operator와 단락 연산자

by bantomak 2023. 1. 27.

Eager Operator, 단락 연산자(Short-circuit Operatoer)

C# 관련으로 공부하다보니 단락 연산자(short-circuit operator)라는 단어를 발견해서 그에 대한 정리를 해보려고 한다.
Eager operator는 어떻게 번역되는지 모르겠네요! 아시는 분이 있다면 댓글 부탁드립니다.

 

심볼(Symbol) 연산자 타입 속성
&, | 논리 연산자, 비트 연산자 Eager operator
&&, || 논리 조건 연산자 Short-circuit operator

eager operator는 첫 번째 조건과 상관없이 두 번째 조건을 실행한다.

eager operator는 비트 연산자(bit operator)와 모양이 같지만 조건 결과가 boolean이면 eager operator로 쓰인다.

 

class Program
{
    static void Main(string[] args)
    {
        int a = 5;
        int b = 10;

        // && &

        // func2()만 실행되고 func1()은 실행되지 않는다.
        if (func2(b, a) && func1(a))
        {
            Console.WriteLine("condition 2");
        }

        // func1()과 func2() 둘다 실행된다.
        if (func2(b, a) & func1(a))
        {
            Console.WriteLine("condition 2");
        }

        // || |

        // func1()만 실행되고 func2()은 실행되지 않는다.
        if (func1(a) || func2(a, b))
        {
            Console.WriteLine("condition 1");
        }

        // func1()과 func2() 둘다 실행된다.
        if (func1(a) | func2(a, b))
        {
            Console.WriteLine("condition 1");
        }

        bool func1(int a)
        {
            Console.WriteLine("func1()");

            return a != 0;
        }

        bool func2(int a, int b)
        {
            Console.WriteLine("func2()");

            return a < b;
        }
    }
}

 

참조 사이트

 

Short-circuit evaluation - Wikipedia

From Wikipedia, the free encyclopedia Programming language construct Short-circuit evaluation, minimal evaluation, or McCarthy evaluation (after John McCarthy) is the semantics of some Boolean operators in some programming languages in which the second arg

en.wikipedia.org

 

논리 연산자인 and(&&), or(||)에서 short-circuit evaluation 방식 - YA-Hwang 기술 블로그

논리 연산자인 and(&&), or(||)에서 short-circuit evaluation에 대해 알아본다.

yahwang.github.io

댓글