'IF'에 해당하는 글 1건

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
조건문 안에 조건이 많으면 무척 복잡해 보일 때가 있습니다. 또한 가로줄이 너무 길어지게 되죠. 이러한 문제에 대해 여러 가지 해결책이 있을 것입니다. 그 중 하나는 복잡한 조건문을 아래와 같이 여러 줄에 나누어 쓰는 것입니다.
if (value != null &&
   (value == Type.ONE || value == Type.TWO) &&
   state == null) {
   ...
}
그런데 저는 위 코드를 별로 좋아하지 않습니다. 왜냐하면 가로줄은 줄었지만 여전히 지저분 해보이는 느낌이 들기 때문입니다. 그래서 저는 아래와 같은 코드를 더 좋아합니다.

예제1)
if (value != null && (value == Type.ONE || value == Type.TWO) && state == null) {
    ...
}

boolean logging;
logging = (value != null);
logging = logging && (value == Type.ONE || value == Type.TWO);
logging = logging && (state == null);

if (logging) {
   ...
}

예제2)
if (value == Type.ONE || value == Type.TWO || value == Type.THREE || value == Type.FOUR) {
    ...
}

boolean sending;
sending = (value == Type.ONE);
sending = sending || (value == Type.TWO);
sending = sending || (value == Type.THREE);
sending = sending || (value == Type.FOUR);

if (sending) {
    ...
}  

개인적으론 앞선 코드보다 예제1,2 의 코드가 더 깔끔하다고 생각됩니다. 이건 물론 개인적인 취향이겠지요.

하지만 위 코드만의 장점이 있습니다. 그 장점이란 불 변수의 이름을 통해 조건의 목적을 표현할 수 있다는 것입니다. 첫번째 예제를 보면 로깅을 할지 안 할지에 대해 결정하기 위한 조건이라는 것을 알 수 있고, 두번째 예제 역시 전송을 할지 안 할지에 대해 결정하기 위한 조건이라는 것을 쉽게 알 수 있습니다.

2008/02/13 ~ 2007/03/20

WRITTEN BY
차민창
르세상스 엔지니어가 사회를 이끌어나가는 상상을 하며!

,