삼항연산자(정보처리기사)

삼항 연산자란?

삼항 연산자는 조건에 따라 두 개의 값 중 하나를 선택하는 연산자로, 조건 ? 참일 때 값 : 거짓일 때 값 형식으로 표현된다.

삼항 연산자의 기본 구조

조건식 ? 참일 때 반환할 값 : 거짓일 때 반환할 값;

이러한 구조를 가지며, if-else 문을 간결하게 표현할 수 있다.


삼항 연산자의 특징

  1. 조건문을 간결하게 표현할 수 있다
  2. 변수 할당과 함께 사용 가능하다
  3. 중첩해서 사용 가능하지만 가독성이 떨어질 수 있다

예제 코드

C 언어에서 삼항 연산자 사용

#include <stdio.h>

int main() {
    int a = 10, b = 20;
    int max = (a > b) ? a : b;
    
    printf("더 큰 값은 %d이다.\n", max);
    return 0;
}

결과:

a = 10, b = 20 

아래쪽 계산을 보면 a > 10 

a = 10 이므로 이 전제 조건은 = 거짓

참일 때 결과값은 a , 거짓일때 결과값은 b로 표현하므로 

값은 20이 할당 된다.

더 큰 값은 20이다.

 


Java에서 삼항 연산자 사용

public class TernaryExample {
    public static void main(String[] args) {
        int num = -5;
        String result = (num >= 0) ? "양수" : "음수";
        
        System.out.println("결과: " + result);
    }
}

결과:

결과: 음수

Python에서 삼항 연산자 사용

Python에서는 if-else 문을 한 줄로 줄여서 사용할 수 있다.

num = 10
result = "짝수" if num % 2 == 0 else "홀수"
print(f"{num}은 {result}이다.")

결과:

10은 짝수이다.

삼항 연산자의 활용 예제

입력값이 양수, 0, 음수인지 판별하는 코드 (중첩 사용)

int number = -10;
String result = (number > 0) ? "양수" : (number == 0) ? "0" : "음수";
System.out.println("결과: " + result);

결과:

결과: 음수

삼항 연산자 문제 예제 및 풀이

 

다음 Java 프로그램 실행 결과는?

public class ovr {
    public static void main(String[] args) {
        int a = 1, b = 2, c = 3, d = 4;
        int mx, mn;
        
        mx = a < b ? b : a;
        
        if (mx == 1) {
            mn = a > mx ? b : a;
        } else {
            mn = b < mx ? d : c;
        }
        
        System.out.println(mn);
    }
}

풀이 과정

  1. a = 1, b = 2, c = 3, d = 4 로 할당.
  2. mx = a < b ? b : a; 에 의해 mx = 2 가 된다.
  3. if (mx == 1) 조건은 false 이므로 else 블록으로 간다.
  4. mn = b < mx ? d : c; 에 의해 mn = 3 이 된다.
  5. 결과적으로 System.out.println(mn);3 을 출력한다.

결과:

3

삼항 연산자의 장점과 단점

장점

  • if-else 문을 간단한 조건에서는 줄여서 표현 가능 → 코드 가독성 향상
  • 변수 할당 시 유용 (예: int max = (a > b) ? a : b;)

단점

  • 조건이 많아지면 가독성이 떨어진다 (중첩 사용 주의 필요)
  • 복잡한 조건문에는 if-else 문이 더 적합할 수 있다

결론

삼항 연산자는 간결한 조건문을 작성하는 데 유용하지만, 가독성을 해치지 않는 선에서 적절히 활용하는 것이 중요함.

단순한 조건 처리에는 유용하지만, 여러 조건을 포함하는 경우 if-else 문이 더 적절할 수 있다.