본문 바로가기

Programming/JAVA

java : coding tip - 삼항연산자를 활용한 분기

보통 분기를 해야할 경우엔 if else를 많이 사용합니다.
하지만 특정 key들이 있고 그 key에 맵핑되는 data를 각 분기들 모두 공통으로 사용하는 변수에 넣는다면
if else 보다 짧게 코딩할 수 있는 방법이 있습니다.
제목처럼 삼항연산자를 사용하는 것이죠.

예를 들어보겠습니다.

철수는 소개팅 3건을 연달아 주선하기로 하였습니다.
어떤 카페에서 각 커플들을 소개해주기 위해 장소는 한 곳만 정해놓았습니다.
각 커플들은 서로의 짝이 정해진 상태이지만 여성분들의 스케쥴이 정해지지 않아 먼저 연락오는 
여성분을 순서로하여 각 커플에 문자메시지를 보내기로 하였습니다.

이걸 if else문을 사용하여 프로그래밍한다면
	caller = getCall();
	if( "jollie".equals(caller) ){
		sendSMS(caller, "pitt");
	} else if( "victoria".equlas(caller) ){
		sendSMS(caller, "beckham");
	} else if( "kerr".equals(caller) ){
		sendSMS(caller, "bloom");
	}
위처럼 되겠죠.
하지만 이를 삼항연산자를 사용한다면 이렇게될 수 있습니다.
	caller = getCaller();
	sendSMS(caller, caller.equals("jollie") ? "pitt" : caller.equals("victoria") ? "beckham" : "bloom");
무척 간결해지죠?
물론 가독성 측면에서 태클이 들어온다면 그다지 좋은 코딩이라고 볼 수는 없겠죠.
if else 를 사용하는 것보다 분명 코드라인을 짧게하고 어쩜 같은 패턴이기때문에
익숙하다면 오히려 더 가독성이 분명해보이기까지 합니다.

이러한 코딩을 하는 것은 어떤 프로그래머들과 일하는지, 숏코딩이 익숙한 문화인지,
그리고 이렇게 코딩된 소스가 언제까지 유효하고 누구에게 전파될지에 따라서
장려할 필요가 있거나 지양할 필요가 있겠습니다.

전 개인적으로 멋있어 보여서....ㅋㅋ