C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49328] Re:if구문과 switch구문의 연산 속도에 대한 질문입니다.
달빛자르기 [] 2321 읽음    2007-05-22 10:51
항상 그런건 아니지만 이론적으로 if문이 더 빠를 수 있습니다. 단 조건을 순차적으로 잘 만들어야 겠죠.
그래서 요즘은 모르겠고 예전에는 게임등의 프로그램에서 중요부분을 switch -> if else 문으로 일일히 다 바꾸기도 한걸로 압니다.

if 조건A
else if 조건B
else if 조건C
....

이때 조건A, B, C가 일어날 확률이 항상 동일한건 아니지요.
조건 C : 80% 조건 B : 15% 조건 C : 5%의 확률이라 가정할때..

이럴땐 switch 문이 더 빠르겠죠.
이때는

if 조건C
else if 조건B
else if 조건A
....

이렇게 바꿔주면 if else문이 역전할겁니다.

그래서 if문이 더 빠르다 switch문이 더 빠르다.. 그렇게 짧은 말로 정의를 내릴순 없습니다. 한마디로 그때그때 달라요.
단 특정 함수가 프로그램의 성능을 좌우할때는 switch문을 if else 구문으로 바꾸면 성능면에서는 좋습니다.
요즘은 컴이 좋아져서 뭐 별로 그럴필요까지야.. 없기도 하겠지요.
그렇게 하면 유지보수가 힘들어지고 소스의 가독성이 떨어지고.. 개 노가다를 해야한다는 단점도 있으니까요.

아 그리고 if else가 아주 많다면... switch에 비해서 비효율적이겠죠. 하지만 대부분의 경우에 if else의 조건을 순서대로 잘 나열하기만 하면 switch보다 성능이 우수할 거라 생각합니다.

+ -

관련 글 리스트
49312 if구문과 switch구문의 연산 속도에 대한 질문입니다. 착한아들(HoPe) 1734 2007/05/19
49328     Re:if구문과 switch구문의 연산 속도에 대한 질문입니다. 달빛자르기 2321 2007/05/22
49313     Re:if구문과 switch구문의 연산 속도에 대한 질문입니다. 아루스 1765 2007/05/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.