[JAVA] 10.조건문 - switch

2016. 11. 10. 22:03프로그래밍/JAVA

    목차

조건문 - switch


정의

주어진 조건에 따라 다르게 동작하도록 하는 것



내용

앞서 말했던 조건문 - if 에서 처럼 자바의 2가지 조건문 중 남은 switch문에 대하여 알아보자.

switch문은 if문과는 다른 분기 처리 방식을 사용한다. if문은 여러 조건이 나열되어 있는 상황에서
순차적으로 조건을 체크해 나가면 조건이 만족할 경우에 해당 블럭 문장들을 실행하는 반면
switch문은 조건에 해당하는 case를 찾아 문장을 수행한다. 

간단한 코드를 보도록 하자.


위에 코드를 보면 switch 문에 key 값에 해당하는 case에 value 값을 찾아 일치하는 value가 

존재 한다면 그 case 부터 문장을 처리하게 된다. if문에서는 조건에 만족하게 되면 해당 블럭 문장들만

처리하지만 switch 문은 해당하는 case가 존재하면 그 case문 부터 break 문을 만나기 전까지

모든 문장이 실행 된다는 부분이 다르다. 조금 더 상세히 작성된 코드를 보도록 하자.


사이트에 로그인한 회원의 회원등급에 따라 게시물에 대한 권한을 준다고 가정 했을때

관리자는 '삭제','작성','읽기' 권한을 주도록 했고

일반회원은 '작성','읽기' 권한을

그 외 회원은 '읽기' 권한만을 주도록 작성된 코드이다. 코드를 자세히 보면 중복 되어진 코드들이 발견되는데

관리자가 가지는 권한 중 '작성','읽기' 권한은 일반회원, 그 외 회원들이 가지는 권한 처리 코드와 중복된다.

switch문의 특성을 활용하여 중복되는 코드를 제거해 보자.


자.. 위에 코드와 비교 했을때 달라진 부분이 보이는가?! 각 case문에 break문을 제거 함으로써 중복되는 코드를 제거 할 수 있다. 왜 이런 코드가 작성될 수 있는지 다시 한번 살펴보도록 하자.


이제는 switch 문에 break가 있을 경우와 없을 경우에 차이점이 확실이 보일 것이다.


유의사항

switch문에 조건에는 if문에 조건식과 달리 int형 해당하는 정수값과 문자열이 조건으로 주어지게 된다.
자바 1.7이하 버전에서는 int 범위 내에 값만 조건에 들어갈 수 있으니 유의하기 바란다.

참조