JAVA 삼항연산자 조건문 사용 방법

Java에서 조건문을 사용하는 경우가 상당히 많습니다.

그중에서도 많이 사용하는 조건문이 if문입니다.

if문의 기본 동작은 참일 때 처리와 거짓을 때 처리로 나눠집니다.

이러한 if문의 기본 동작과 동일하게 사용할 수 있는 작성 방법이 있습니다.

삼항연산자입니다.

이번에는 삼항연산자의 사용 방법을 알아보겠습니다.

 

삼항연산자

if문의 기본적인 작성 방법을 먼저 보겠습니다.

if(){
  처리
} else {
  처리
}

 

if문에서 작성한 조건과 일치하면 if문 블록 내에서 처리를 합니다.

그리고 if문 조건과 일치하지 않으면 else 블록 내에서 처리를 합니다.

if문으로 간단한 조건문을 작성해 보겠습니다.

int val = 10;
int result = 0;

if(val < 20){
  result = 1;
} else {
  result = 2;
}

 

변수 val이 20보다 작으면 변수 result에는 값 1이 저장됩니다.

val이 20보다 크면 result에는 값 2가 저장됩니다.

이것을 삼항연산자로 작성해 보겠습니다.

우선 삼항연산자 기본 작성 방법은 다음과 같습니다.

조건문 ? 참일 때 값 : 거짓일 때 값;

 

샘플을 보겠습니다.

int val = 10;
int result = 0;

result = val < 20 ? 1 : 2;

 

변수 val이 20보다 작으면 변수 result에 참일 때 값인 1이 반환됩니다.

val이 20보다 크면 result에는 거짓일 때 값인 2가 반환됩니다.

삼항연산자의 작성 방법과 동작은 if ~ else 문의 형식과 동일하다고 생각하면 됩니다.

코딩이 간략해지는데 왜 소스 코드가 길어지는 if ~ else을 사용하는 것일까요?

그것은 개인 적인 차이가 크다고 생각합니다.

개인적으로 if ~ else를 전부 삼항연산자로 작성하면 가독성이 안 좋게 느껴집니다.

그리고 유지 보수를 하는 경우에 삼항연산자에 조건 또는 처리 내용이 추가되었을 경우 if ~ else로 다시 변경해야 합니다.

이 과정에서 오타로 인한 버그 또는 삼항연산자에 익숙하지 않은 다른 개발자에 의한 버그등이 발생할 수 있습니다.

즉, 필요 없는 테스트도 늘어나게 됩니다.

하지만 삼항연산자가 무조건 나쁜 것만은 아닙니다.

지금 기억이 안 나지만 5~6년 전 프로젝트에서 if ~ else로 처리를 하면 원하는 값을 반환하지 못하는 경우가 있었는데

삼항연산자를 사용해 가능하게 한 적이 있었습니다.

당시에는 샘플과 이유를 명확하게 알고 있었는데 기록을 해두지 않으니 전형 기억기 안 나네요.

역시 기록을 남겨두어야 나중에도 써먹을 수 있는 거 같습니다.

개인에 따라 삼항연산자를 사용할 수도 사용하지 않을 수도 있습니다.

하지만 소스 작성 방법을 많이 알아두는 것이 다른 개발자의 소스를 볼 때 내용을 파악하고 흐름을 이해할 수 있기 때문에 여러 가지 작성방법을 알아두는 것도 좋을 거 같습니다.

댓글