강좌 & 팁
글 수 2,412
2012.03.09 20:48:43 (*.52.177.29)
43834
같은 기능을 수행하는 프로그램을 작성해도 프로그래머에 따라 코딩하는 방법이 천차만별입니다. 때로 코딩이나 컴파일 되는 과정을 보면 그분의 성격까지도 알 수 있는데 완벽한 코딩은 없어도 분명 효율적인 방법은 있을 것입니다. 최근에 다른 분이 작성된 코드를 보다가 if문 대신에 switch문을 사용했더라면 더 이해하기 쉬운 코드였을 텐데하는 생각이 들더군요.
if 대신에 switch를 사용하면 코드가 더 간결해진다는 것은 제 생각이 아닙니다. 아주 오래 전에 어떤 분이 내 놓았느데 실제 사용해 보니 여러모로 장점이 있더군요. 가령 아래의 if 절 보다는,
if ( 3 == ndx){ .... } else if ( 100 == ndx){ .... } else if ( 200 == ndx){ .... } else { .... }
아래의 switch 문이 이해하기가 더 쉽습니다.
switch( ndx){ case 3 : .... break; case 100 : .... break; case 200 : .... break; default : .... break; }
보기 쉬운 것 뿐만 아니라 if 절의 고질 버그인 == 를 = 로 사용하는 문제도 없어집니다. 아래의 코드는 항상 참이죠. 그래서 if 절에는 상수를 먼저 사용하는 습관을 기르기도 하는데 switch문을 사용하면 이런 걱정이 필요 없고 중복되는 ndx == 없이 비교 대상만 보이기 때문에 버그 발생 횟수도 줄일 수 있다고 생각됩니다.
if ( ndx = 3){ .... }
한가지 안타까운것은 조건에 문자열을 사용하지 못한다는 점이죠. switch문의 효율성 때문이겠습니다만, 때로 문자열도 되었으면 할 때가 있답니다. ^^