보통 분기를 해야할 경우엔 if else를 많이 사용합니다.
하지만 특정 key들이 있고 그 key에 맵핑되는 data를 각 분기들 모두 공통으로 사용하는 변수에 넣는다면
if else 보다 짧게 코딩할 수 있는 방법이 있습니다.
제목처럼 삼항연산자를 사용하는 것이죠.
예를 들어보겠습니다.
철수는 소개팅 3건을 연달아 주선하기로 하였습니다.
어떤 카페에서 각 커플들을 소개해주기 위해 장소는 한 곳만 정해놓았습니다.
각 커플들은 서로의 짝이 정해진 상태이지만 여성분들의 스케쥴이 정해지지 않아 먼저 연락오는
여성분을 순서로하여 각 커플에 문자메시지를 보내기로 하였습니다.
이걸 if else문을 사용하여 프로그래밍한다면
하지만 이를 삼항연산자를 사용한다면 이렇게될 수 있습니다.
물론 가독성 측면에서 태클이 들어온다면 그다지 좋은 코딩이라고 볼 수는 없겠죠.
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 를 사용하는 것보다 분명 코드라인을 짧게하고 어쩜 같은 패턴이기때문에
익숙하다면 오히려 더 가독성이 분명해보이기까지 합니다.
이러한 코딩을 하는 것은 어떤 프로그래머들과 일하는지, 숏코딩이 익숙한 문화인지,
그리고 이렇게 코딩된 소스가 언제까지 유효하고 누구에게 전파될지에 따라서
장려할 필요가 있거나 지양할 필요가 있겠습니다.
전 개인적으로 멋있어 보여서....ㅋㅋ
'Programming > JAVA' 카테고리의 다른 글
java : 상속을 통해 리턴타입을 보다 유연하면서도 강제할 수 있어요! (다형성) (2) | 2011.08.15 |
---|---|
java : JRE와 JDK의 구분을 정확히 해주는 그림 (2) | 2011.08.14 |
java : 동치에 대해서.(두 객체가 같다는 의미) (0) | 2011.06.14 |
java : 서버에서 구동중인 jsp파일을 수정하면 자동으로 서버에 반영이되요! (0) | 2011.06.02 |
java : 특정 객체를 부모로 상속하는 객체들을 파라미터로 하는 메소드를 쓸 땐 부모 객체를 파라미터로. (0) | 2011.05.26 |