따뜻한센드의 놀이터

switch문은 if문과 마찬가지로 조건 제어문입니다. 하지만 switch문은 if문처럼 조건식이 true일 경우에 블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택됩니다. if문은 조건식의 결과가 true, false두 가지밖에 없기 때문에 경우의 수가 많아질수록 else-if를 반복적으로 추가해야 하므로 코드가 복잡해집니다. 하지만 switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if문보다 코드가 간결합니다. 저와 함께 switch문을 알아보겠습니다.

 

switch 사용 그림

switch문의 사용방법은 위와 같습니다. switch( 변수 )에서 변수가 1일 경우 case 값1: 로 이동하여 실행문A를 실행한 후 break;문을 만나서 switch문을 빠져나가게 됩니다. 변수가 2일 경우 case 값2: 로 이동하여 실행문B를 실행한 후 break;문을 만나서 switch문을 빠져나가게 됩니다. 만약 변수가 값1, 값2 모두 아닐 경우 default: 로 이동하여 실행문 C를 실행한 후 switch문을 빠져나가게 됩니다. 참고로 switch문에서 변수는 char타입(문자)과, String타입(문자열)도 사용이 가능합니다. 이해 되셨을 것입니다. 이제 소스코드로 알아보겠습니다.

1     package send.study01;
2
3     public class SendTest {
4	     public static void main(String[] args) {
5	
6		     int jumsu = 100;
7		
8		     switch( jumsu ) {
9			     case 80:
10				     System.out.println("80점입니다.");
11				     break;
12			     case 90:
13				     System.out.println("90점입니다.");
14				     break;
15			     case 100:
16				     System.out.println("100점입니다.");
17				     break;
18			     default:
19				     System.out.println("0점입니다.");
20				     break;
21		     }
22	     }
23     }

6번째 줄에서 jumsu변수에 정수 100이 할당되었습니다. 8번째 줄 switch( jumsu )에서 jumsu 변수는 100을 가지고 있으므로 case 값중에 100과 일치하는 15번째 줄의 case 100: 으로 이동한 후 16번째 줄을 실행하고 17번째 줄의 break;문을 만나면 switch문을 빠져나가게 됩니다. 만약에 jumsu 변수가 어떠한 case 문의 값과 일치하지 않는다면 18번째 줄의 default: 문으로 이동한 후 19번째 줄을 실행하고 20번째 줄의 break;문을 만나 switch문을 빠져나가게 됩니다. 이해 되셨을 것입니다. switch문을 사용할때 꼭 알아야 할 개념이 있는데, 바로 break;문의 존재 유무입니다. 이것을 작성하냐 안하는냐에 따라 결과가 원치 않게 나올 수도 있으며, 개발자가 일부로 break;문을 사용하지 않기도 합니다. 도대체 이게 무슨 말인지 저와 함께 알아보겠습니다.

 

switch문 사용 그림

위의 그림은 이클립스로 작성한 소스 코드입니다. 여기서 break문은 17번째 줄 밖에 없습니다. 6번째 줄에서 jumsu 변수에 80이 할당 되었으므로 8번째 줄의 switch( jumsu )는 당연히 9번째 줄의 case 80: 으로 이동하여 "80점입니다."가 출력이 되어야 정상일 것입니다. 하지만 console 창에서 나오는 결과 값은 다르게 나온 것을 알 수 있습니다. 그 이유는 break; 문을 만나면 바로 switch문을 빠져나오지만 break;문이 없기 때문에 11번째 줄의 case 90:, 13번째 줄의 case 100:, 15번째 줄의 default: 문이 연속으로 실행이 됩니다. 그래서 결과 값은 "80점입니다.", "90점입니다.", "100점입니다.", "0점입니다."가 출력이 된 것입니다. 하지만 개발자가 일부로 break;문을 사용하지 않고 위와 같은 결과를 나타내도록 의도하는 경우도 있으니 참고하시면 되겠습니다. 이제 switch문을 사용하는 방법을 이해하셨을 것입니다. 이것으로 JAVA 조건문 switch문을 알아보자를 마치겠습니다. 긴 글 읽어주셔서 감사합니다.

 

 

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band