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

[C#] 물음표(?) 연산자 사용 방법

by Jinwood 2021. 4. 19.
반응형

물음표 연산자는 if-else 조건문을 매우 간단하게 한 줄로 줄여줄 수 있는 연산자이다. 아래 if-else 조건문을 이용한 코드와 물음표 연산자를 이용한 코드를 작성해 보았다. 0~100 사이에 임의의 정수를 2로 나눈 나머지가 0이면 true, 아닐 경우 false를 변수에 지정하는 코드이다.

 

  1. if-else 조건문을 이용한 코드

    1
    2
    3
    4
    5
    6
    7
    8
    System.Random rnd = new rnd();
    int value = rnd(0,100);
     
    bool result;
    if(value % 2 == 0)
    { result = true; }
    else
    { result = false; }                                                
    c

     

  2. 물음표 연산자를 이용한 코드

    1
    2
    3
    4
    System.Random rnd = new rnd();
    int value = rnd(0,100);
     
    bool result = value % 2 == 0 ? true : false;                    
    cs

1번에 작성된 코드에 비해 2번에 작성된 코드는 한 줄로 표현되기 때문에 물음표 연산자를 알고 있다면 매우 간단하게 작성될 수 있는 코드이다. 물음표 연산자는 아래의 그림과 같이 세 가지 파트로 나눠질 수 있다. 우선 입력받을 변수명을 작성한 뒤 조건식을 작성한다. 이후에 조건식과 전달할 값 사이에 물음표(?)를 입력하고 해당 조건이 참일 경우 출력되는 값을 왼쪽에, 거짓일 경우 출력되는 값을 오른쪽에 적으면 된다.

 

 

아래와 같이 메서드 호출을 통해 값을 입력할 수도 있으니 참고.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void Sample()
{
    Random rnd = new Random();
    int d1 = rnd.Next(0100);
    int d2 = rnd.Next(0100);
 
    int d3 = d1 < d2 ? add(d1, d2) : minus(d1, d2);                    
}
private int add(int a, int b)
{
    return a + b;
}
 
private int minus(int a, int b)
{
    return a - b;
}
cs

 

지금까지 사용하면서 생각해본 물음표 연산자의 단점은 아래와 같다.

  1. 반드시 return 값을 받아야 한다(위 코드의 d3 같이).
  2. void로 return되는 메서드를 물음표 연산자를 통해 조건문을 진행할 수 없다.
  3. 3가지 이상의 조건문으로 작성해야 할 경우 물음표 연산자를 사용할 수 없다.

위 조건에 걸리지 않는 간단한 if-else 조건문을 사용한다면 물음표 연산자가 매우 유용할 것이다. 끝!

반응형

댓글