Chapter 01. 제대로 사용한 case문 하나 열 if 문 안 부럽다

Point

프로그램은 결과도 중요하지만 과정도 중요하다.

프로그램에 있어 중요한 것은 결과가 나오느냐 하는 것이라 생각 하는 프로그래머 들이 많이 있습니다.

물론 결과를 산출하는 것이 프로그램의 목적 이기 때문에 중요하지만, 프로그램이 결과를 산출하는데

굉장히 오랜 시간이 걸린다거나, 중간에 프로그램이 죽는다거나, 많은 메모리를 차지하게 된다면

결코 좋은 프로그램을 만들었다고 할수 없습니다. 따라서 프로그램의 결과도 중요하지만 아래와 같은 중간과정도 중요합니다.

  1.  코드의 최적화
    메모리, CPU의 시간과 같은 리소스를 낭비하지 않고 적잘하게 사용하는 최적화
  2. 코드의 재사용성

    같은 코드를 여러 번 반복하여 작성하거나, 다른 사람이 자신의 코드를 사용할 때 별 다른

    수정없이 사용할 수 있도록 구성하는 모듈화

  3. 코드의 가독성
     다른 사람이 소스 코드를 쉽게 이해할 수 있게 하는 가독성

 

 

Content

if 문은 변수의 값을 비교하여 프로그램의 흐름을 결정하는 제어문의 한 종류입니다.

하지만 if, else if 를 너무 남발함으로써 소스 코드의 가독성이 떨어질 뿐만 아니라

프로그램을 유지-보수 할때 무척 지저분해 진다는 단점이 있습니다.

프로그램의 결과도 중요하지만 오랜 시간이 지나서 자신이 다시 보거나 다른 사람들이

코드를 봤을 때 이해하기 쉽게 만드는 것 또한 중요합니다.

 

 예를 들어

  1.  if( val == 1 )
  2. ...
  3. if( val == 2 )
  4. ...
  5.  if( val == 3 )
  6. ...
  7.  if( val > 4 )
  8.       ...

 

이와 같이 코드를 작성 했을 경우 val 이 1 이 었을 때 위의 프로그램은 나머지 if에 대한 검사도 합니다.

만약 if문이 500개, 1000개가 된다면 전체 프로그램의 속도를 떨어뜨리는 원인으로 작용 하게 됩니다.

 

  1. switch( val )
  2. {
  3. case STEP_FIRST:
  4. .....
  5. break;
  6. case STEP_SECOND:
  7. .....
  8. break;
  9. case STEP_THIRD:
  10. .....
  11. break;
  12. }

 

위의 코드처럼 사용하게 되면 보기에도 좋을 뿐만 아니라 소스를 수정하기에도 편하고,

좀 더 경제적으로 프로그래밍을 할 수 있습니다.

물론 if, else if 를 사용해야 할 경우에는 어쩔수 없이 사용을 해야겠지만 이 코드와 같이

단순히 값이 같은지 비교하는 경우에는 switch~ case 문을 사용하여 좀 더 이해가 쉽도록 하는 것이 좋습니다.

이 글은 스프링노트에서 작성되었습니다.

설정

트랙백

댓글