성장일기

1. 조건 연산자(삼항 연산자) ? :

자바에서 조건 연산자는 if문(조건문)과 같은 개념으로 if문 대신 조건 연산자를 사용하면 코드를 보다 간단히 할 수 있다.

조건 연산자는 조건식, 식1, 식2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자이다.

 

조건식 ? 식1 : 식2

조건식이 true일 때 식1 반환

조건식이 false일 때 식2 반환

 

result = (x > y) ? x : y

ex) x = 5, y = 3일 때 result = 5

     x = 3, y = 5일 때 result = 5

 

조건 연산자는 조건식의 조건결과가 true이면 식1이, false이면 식2가 각각 반환된다.

 

 

2. if문과 비교

//조건연산자
result = (x > y) ? x : y
//if문
if(x > y){
	result = x;
} else{
	result = y;
}

 위의 코드와 같이 조건 연산자는 if문으로, if문은 조건 연산자로 바꿔쓸 수 있다. 위의 코드와 같이 간단한 조건비교와 결과를 내는 코드의 경우 조건 연산자를 사용하면 되게 간략하지만 if문 내에 로직이 조금만 복잡한경우에 조건 연산자의 사용은 가독성이 떨어지므로 사용을 피해야 한다. 

조건 연산자는 if문을 간략하게 형태만 바꾼거일 뿐 속도가 더 빠르거나 다르지 않다.

 

 

3. 조건 연산자의 중첩

int x = 3;
int y = 5;
int z = 7;
int result;

result = x > y ? x : (y > z ? y : z);

System.out.println("result = " + result);   //result = 7

조건 연산자의 결합규칙은 오른쪽에서 왼쪽으로 코드의 실행 흐름은 아래와 같다.

1. y > z ? y : z

-> 5 > 7 ? 5 : 7

-> false ? 5 : 조건식이 false이므로 7 반환

 

2. x > y ? x : 7

-> 3 > 5 ? 3 : 7

-> false ? 3 : 조건식이 false이므로 7 반환

 

3. result = 7

 

조건 연산자를 여러 번 중첩하면 가독성이 떨어지므로 꼭 필요한 경우에만 한번 정도 중첩하는 것이 좋다.

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band