본문 바로가기

JAVA

If문 vs Switch문

💡문득 if문과 switch문의 차이가 궁금해져서 찾아보았다.

 

If문 (branch statement 기반)

if문은 조건이 만족하면 실행, 만족하지 않으면 무시한다. 조건이 만족하지 않으면 조건이 만족하거나 else if 문을 종료할 때까지 다음 조건문을 계속 확인한다.

따져야하는 조건이 많을수록 연산량이 늘어난다. if문을 작성할 때, 자주 사용하는 기능 순서대로 조건문을 작성하는 것이 성능 향상에 도움이 된다.

장점 : 점프테이블을 만드는 오버헤드가 없다.

단점 : if 혹은 else if를 만날 때마다 조건을 확인하기 위한 instruction이 계속해서 필요된다. -> 따져야 할 조건 수가 적을 경우 if-else를 쓰는 것이 유리하다.

 

Switch-case 문 (jump statement 기반)

switch case문은 값이 실행 제어를 변경할 수 있도록 하는 제어문이다. jump table을 사용해 한번에 원하는 곳으로 이동한다. 조건이 많을 때와 사용자가 여러 기능을 유사한 빈도로 사용할 때 유리하다.

장점 : switch문 시작시에 입력받은 값을 확인하는 instruction만 필요하다.

단점 : jump table 생성에 오버헤드가 발생할 가능성이 있다. (case의 개수가 4개 이하이면 jump table을 생성하지 않는다.) -> 따져야할 조건이 많은 경우 사용하는 것이 유리하다.

 

 

'JAVA' 카테고리의 다른 글

[알고리즘] 이분탐색  (0) 2023.03.08
배열 복사 (얕은 복사, 깊은 복사)  (0) 2023.02.06
[Java] substring (문자열 자르기)  (2) 2023.01.21
[JAVA] HashMap 기본 및 정렬  (0) 2023.01.19
[Java] BigInteger(큰 정수)  (0) 2023.01.18