Java (자바)

[Java] 삼항 연산자

Oscar:) 2024. 2. 4. 17:46

 

 

이번 포스팅에서는 삼항 연산자에 대해 알아보자.

 

 

 


 

삼항 연산자란?

 

 

if~else문과 동일한 역할을 수행하는 조건 연산자의 일종이다.

 

대신, 참과 거짓. 딱 2개의 케이스만 구분할 수 있다.

 

 

if문으로 예시를 들면, else if 를 사용하여 3개 이상의

결과를 구분하는 등의 행위는 삼항 연산자로는 불가하다.

 

 

 


 

문법

 

 

문법은 다음과 같다.

 

// 문법
조건식 ? 참일 때 반환 값 : 거짓일 때 반환 값

// 예시
int i = 0;
String result = i > 0 ? "참" : "거짓";

// result == "거짓"

 

i > 0 이 아니기 때문에 "거짓" 이라는 문자열이 대입되었다.

 

 

 


 

삼항 연산자를 사용하는 이유?

 

 

if~else문, switch문 이 2개의 조건문으로도 충분히 문제 없이 코딩할 수 있다.

 

그럼에도 삼항 연산자를 굳이 사용해야할 이유가 있을까?

 

 

가끔 가독성이 좋다고 하는 사람들도 있는데,

가독성의 기준은 사람마다 다르기 때문에 조금 애매한 말이라고 생각한다.

 

가독성이 좋다는 것은 코드를 읽기 쉽다는 뜻인데,

삼항 연산자가 눈에 잘 안 익어서 오히려 더 오래 읽고 있을 수도 있다.

 

 

 

삼항 연산자의 장점을 굳이 꼽자면 코드의 간결성이다.

 

if {

} else {

}

 

if~else문은 보통 틀만 만들어도 5줄이나 차지한다.

 

 

 

반면 삼항 연산자는 1줄로 끝낼 수 있다.

조건식 ? 참 반환 값 : 거짓 반환 값

 

코드의 줄 수는 획기적으로 줄일 수 있다.

 

 

코드의 줄 수가 줄어들면 가독성이 좋아지는 것이 아닌가?


아무리 코드가 1줄이라고 해도 삼항 연산자를 중복으로 사용하거나
(1줄에 조건식이나 반환 값 자리에 이중 삼항 연산자)
조건식 · 반환 값이 길어지면 오히려 가독성이 떨어질 수도 있다.

 

 

 

그리고 중요한 건, 코드의 길이가 짧다고 컴파일 시간이 더 짧아지는 것도 아니다.

 

 

 


 

 

 

이번 포스팅에서는 삼항 연산자에 대해 알아보았다.

 

정말 단순한 참·거짓 조건문을 사용할 때는 가끔씩 고려해 볼 만한 것 같다.