- 참고
- if/else 와 switch 작동 차이
- if/else는 원하는 조건이 나올 때 까지 순차적으로 모든 경우를 비교 → branch statement 기반
- switch는 jump-table을 사용해 한번에 원하는 곳으로 이동 → jump statement 기반
- if/else와 switch 성능 차이
- if/else
- branch하는 지 판단
- 실행을 할건지 말건지 판단
- 점프 테이블을 만드는데 걸리는 시간적 오버는 없으나, branch의 유무를 판단하기 위한 지침이 지속적으로 필요
- 조건의 수가 작을수록 유리
- switch
- jump할 위치 찾기
- 어떤 코드를 실행할 것인지 판단
- 조건에 만족하는지 만족하지 않는지에 대한 판단이 아닌, switch시작 시 입력받은 값을 확인하는 지침만 필요 하지만, 점프테이블을 만드는 시간적 오버(오버헤드)가 존재
- 조건의 수가 다양하고 많을수록 switch문을 쓰는 것이 유리