switch 문

By | 2009년 3월 9일

switch 문은 주어진 수식의 값을 case 문의 값과 비교하여 일치하는 case 문 이하의 실행코드들을 수행하는 구조로 돼 있으며 형식과 순서도는 다음과 같다.

switch 구조

형식


switch ( 수식 ) {
    case  값1 : 실행코드 1 ;
    case  값2 : 실행코드 2 ;
    case  값3 : 실행코드 3 ;
    default     : 실행코드 4 ;
}

사용자 삽입 이미지

switch - flowchart


다음 프로그램 “switch.jsp”를 살펴보자.



<%@ page language=”java” contentType=”text/html; charset=EUC-KR”
    pageEncoding=”EUC-KR”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-KR”>
<title>Insert title here</title>
</head>
<body>
<%
int ranking = 2;


out.println(ranking);
out.println(“등 상품은 “);


switch (ranking) {
    case 1 : out.println(“컴퓨터”);
    case 2 : out.println(“모니터”);
    case 3 : out.println(“프린터”);
}
%>
입니다.
</body>
</html>


사용자 삽입 이미지

switch.jsp 실행결과


위 프로그램 “switch.jsp”에서 순위를 위한 변수 “ranking”에 초기값으로 2가 저장되어있다. 따라서 switch 문의 수식(이 프로그램에서는 변수)의 결과가 2 이므로 case 문의 값과 일치하는 부분, 즉

case 2 : out.println(“모니터”);

이하의 코드를 실행하게 되므로

out.println(“모니터”);
out.println(“프린터”);

두 개의 실행코드를 실행하고 switch 문을 빠져 나온다. 따라서 결과 역시

“2등 상품은 모니터 프린터 입니다.”

를 출력한다. 위 프로그램에서 보면 switch 문 형식에서 보이는 “default : ” 부분이 안보이는데 이 부분은 switch 문 수식의 결과와 일치하는 case 부분이 없을 때 실행할 코드는 기술해 주는 부분으로 실행할 코드가 없으면 생략 가능하다. 위 프로그램의 결과로써 1등 상품은 “컴퓨터 모니터 프린터”가 될 것이고, 2등 상품은 “모니터 프린터”가 , 3등 상품은 “프린터”가 될 것이다.

만약 1등 상품으로는 “컴퓨터”를, 2등 상품으로는 “모니터”를, 3등 상품으로는 “프린터”를 각 등수에 따라 하나의 상품만을 받도록 하려면 어느 부분을 고쳐야 할까? 이것은 switch 문 내부에 “break” 문을 삽입함으로써 가능해 진다. break 문은 switch 문 내부의 실행을 종료하고 그 밖으로 빠져 나가도록 프로그램을 제어한다.

다음은 switch 문에서 break를 사용한 경우의 형식과 순서도이다.


break 구조

형식


switch ( 수식 ) {
    case  값1 : 실행코드 1 ;
                     break;
    case  값2 : 실행코드 2 ;
                     break;
    case  값3 : 실행코드 3 ;
                     break;
    default     : 실행코드 4 ;
}

사용자 삽입 이미지

break - flowchart


다음 프로그램 “break.jsp”를 살펴보자.



<%@ page language=”java” contentType=”text/html; charset=EUC-KR”
    pageEncoding=”EUC-KR”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-KR”>
<title>Insert title here</title>
</head>
<body>
<%
int ranking = 2;


out.println(ranking);
out.println(“등 상품은 “);


switch (ranking) {
    case 1 : out.println(“컴퓨터”);
             break;
    case 2 : out.println(“모니터”);
             break;
    case 3 : out.println(“프린터”);
             break;
}
%>
입니다.
</body>
</html>


사용자 삽입 이미지

break.jsp 실행결과


위 프로그램에서는 int ranking = 2에 의해

case 2 : out.println(“모니터”);

부분부터 실행하게 되는데 다음 실행할 코드가

break;

이므로 switch 문을 빠져나간다. 따라서 출력 결과는

“2등 상품은 모니터 입니다.”

가 된다.

One thought on “switch 문

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.