switch 문은 주어진 수식의 값을 case 문의 값과 비교하여 일치하는 case 문 이하의 실행코드들을 수행하는 구조로 돼 있으며 형식과 순서도는 다음과 같다.
switch 구조
형식
case 값1 : 실행코드 1 ;
case 값2 : 실행코드 2 ;
case 값3 : 실행코드 3 ;
default : 실행코드 4 ;
}
다음 프로그램 “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”에서 순위를 위한 변수 “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 구조
형식
case 값1 : 실행코드 1 ;
break;
case 값2 : 실행코드 2 ;
break;
case 값3 : 실행코드 3 ;
break;
default : 실행코드 4 ;
}
다음 프로그램 “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>
위 프로그램에서는 int ranking = 2에 의해
case 2 : out.println(“모니터”);
부분부터 실행하게 되는데 다음 실행할 코드가
break;
이므로 switch 문을 빠져나간다. 따라서 출력 결과는
“2등 상품은 모니터 입니다.”
가 된다.
잘 봤습니다