수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

아래와 같은 코드는 어떤가요?

핑크펄

2023.04.01

안녕하세요.. ^^

요즘, 짜고있는 코드들을 보다가.. 왜케 지저분하지? 라는 생각을 참 많이 합니다..

코딩의 가독성 측면에서 제게 가장 큰 이슈중 하나는 IF vs SWITCH 였는데요.

사실상 두 코드를 비교해보면..

if ( 1 == a ) {
...
}
else if ( 2 == a ){
...
}

보다는

switch (a){
case 1:
...
break;
case 2:
...
break;
}
가 훨씬 가독성이 좋다는 것이 일반론입니다.

혹자는 switch-case 구문이 더 좋은 performance 를 내어 준다 하지만, 구글링 해본 결과 compiler-dependent 한 문제로 사실상 big-deal 이 아니라고 하는군요..(실제로 테스트를 해보지는 않았지만..)

저는 일반적으로 String 에 대한 분기처리를 많이 합니다.(업무상..)

이제 질문 들어갑니다.
아래와 같은 코드가 과연 performance 와 readability 를 모두 충족시켜 줄 수 있을까 라는 것입니다.

String input...
switch(input.hashcode())
{
case 1.hashcode():
break;
case 2.hashcode():
break;
....
}

혹은 아래와 같은 방법이 아닌, 다른 코딩 스타일이 있는지도 궁금합니다.

그럼 이만..~

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 풋내

    수다님/보통 string 에 대한 비교를.. == 연산자로 하지는 않겠죠? equals 로 하는 경우, 각각의 charsequence 를 비교하기 때문에 퍼포먼스는 별반 다르지 않을거라고 생각됩니다.

  • 히메

    저도 가독성 향상을 위해서 switch 구문을 많이 씁니다.

    if else는 프로그래머가 너무 멋대로 짜맞추기 십상이라 보기는 힘들지만,
    속도는 if else가 빠르다고 하더군요. 말씀대로 최적화엔 별 도움 안된다고 하지만요.

  • 수예

    가독성은 당연 스위치가 좋습니다. 정확한 규칙이 있는 데이터들의 처리라면 스위치를 저는 주로 씁니다. 보기 편하거든요.. if 문은 그냥 막때려박음 편하긴 한데 ㅡㅡ;; 나중에 다시볼때,, 또 if 만약 그렇다면 그렇다면 주저리 하게 생각해보게 된다는 ㅡㅡ;;;

  • 누리별

    일단 위의 코드는 컴파일 타임에 에러가 발생하는군요 -_-; 좀더 알아보는 중입니다. 저녁쯤에 다시 코멘트 하도록 하겠습니다.. ㅎㅎㅎ

  • 딥와인

    저 같은 경우는 switch - case문은 학교다니면서 수업시간 외엔 써본적이 없는거 같아요.. 실제 업무에서는 다 if문으로 처리하죠.. 보통 String에 대한 비교하기때문에 switch문을 사용할때 변환해 주는과정이 들어가면 더 성능이 떨어지지 않을까라는 생각을 가지고 있어서 switch는 잘 사용하지 않게 되더라구요..

번호 제 목 글쓴이 날짜
2699380 메뉴가 계단식으로 나타나요.. ㅠ.ㅠ (5) 스릉흔다 2025-06-25
2699354 영문 웹폰트 관련 질문입니다!!! (1) 치킨마루 2025-06-25
2699329 윈도우 미디어 플레이어 URL 질문!!! (1) 제철 2025-06-25
2699296 동영상 배경 질문드려요!!!!!!!!!!!!!! 핫파랑 2025-06-24
2699214 position:fixed 에 대한 질문입니다.. (7) 사이 2025-06-24
2699183 제이쿼리 이미지 슬라이드 위치값 수정 초엘 2025-06-23
2699153 테마[ADORABLE]에서 페이지생성시 하위페이지는 2개밖에 안되나요? 흰여울 2025-06-23
2699129 네이버 블로그 또는 사이트의 글을 불러오기 갤원 2025-06-23
2699070 탭메뉴처럼 셀렉트 박스를 이용해서 내용을 출력할 수 있는 방법이 있을까요. (3) 큰꽃늘 2025-06-22
2699016 인터넷이 안되는 환경에서 validator설치방법 (3) 은송이 2025-06-22
2698988 대체 C++ 6.0 exe 아이콘은 어떻게 넣는건가요? 외국녀 2025-06-22
2698960 음성파일을 embed로 작업했는데..웹 표준코딩으로 변경하려면 어떻게 해야하나요? (1) 잎새 2025-06-21
2698932 메뉴목록 풍선창 만들기 html (2) 하늘이 2025-06-21
2698901 http://www.zeitgeistbot.com/ 이 사이트처럼 움직이는 효과를 무엇이라고 하나요? 누림 2025-06-21
2698876 table width값 크로스브라우징에 대한 문의 (2) 볼수록매력 2025-06-21
2698849 c언어 질문. (3) 아름나 2025-06-20
2698823 setInterval 이벤트 제거 하려면... 가온길 2025-06-20
2698796 이 오류를 이해를 못하겠어요 Addicted 2025-06-20
2698712 IF 문 이 계속 오류가 나요 (2) 옆집오빠야 2025-06-19
2698687 이미지를 클릭하면 그 이미지를 다운받게해주는 방법 질문요 ^^ (미해결) (5) 해지개 2025-06-19
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com