if 문은 주어진 조건식의 참, 거짓 여부에 따라 실행되는 코드가 달라질 경우에 사용하는 제어문이다. if 문은 크게 세 가지 구조로 분류할 수 있다.
if 구조
if 구조는 조건식의 결과가 참인 경우에만 실행할 코드가 있을 경우 사용하며 형식과 순서도는 다음과 같다.
형식
if ( 조건식 ) {
실행코드 1
}
실행코드 1
}
다음 프로그램 “if.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 age = 17;
if ( age < 20 ) {
out.println(“미성년은 10%할인 혜택이 있습니다.”);
}
%>
</body>
</html>
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 age = 17;
if ( age < 20 ) {
out.println(“미성년은 10%할인 혜택이 있습니다.”);
}
%>
</body>
</html>
위 프로그램은 int 형 변수 age에 초기값으로 17이 저장돼 있으므로 if 문의 조건식 “age < 20″의 결과는 “17 < 20″으로 참이 되므로 중괄호({ ~ }) 사이의 코드인
out.println(“미성년은 10%할인 혜택이 있습니다.”);
를 실행한다. 여기서 “out.println”은 java의 출력문으로 JSP에서 출력을 위해 “<%= ~ %>”과 함께 자주 사용되는 출력문 중에 하나다. 만약 변수 age에 20이상의 값이 저장됐다면 조건식이 거짓이 되어 실행결과는 아무 것도 출력되지 않는다.
if ~ else 구조
if ~ else 구조는 조건식의 결과가 참, 거짓에 따라 실행할 코드가 다른 경우 사용하며 형식과 순서도는 다음과 같다.
형식
if ( 조건식 ) {
실행코드 1
}
else {
실행코드 2
}
실행코드 1
}
else {
실행코드 2
}
다음 프로그램 “else.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 age = 20;
if ( age < 20 ) {
out.println(“당신은 미성년 입니다.”);
}
else {
out.println(“당신은 성인 입니다.”);
}
%>
</body>
</html>
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 age = 20;
if ( age < 20 ) {
out.println(“당신은 미성년 입니다.”);
}
else {
out.println(“당신은 성인 입니다.”);
}
%>
</body>
</html>
위 프로그램에서 변수 age에 초기값 20이 저장되어 있고 이로인해 조건식 “age < 20″은 “20 < 20″으로 거짓이므로 esle 부분의 중괄호에 위치한 코드
out.println(“당신은 성인 입니다.”);
를 실행한다. 따라서 “당신은 성인 입니다”라는 메세지를 출력한다. 만약 age의 값이 18과 같은, 20보다 작은
수가 저장됐다면 조건식 “age < 20″가 “18 < 20″으로 참이 되므로
out.println(“당신은 미성년 입니다.”);
부분을 실행하여 “당신은 미성년 입니다.”라는 메세지를 출력하게 된다.
out.println(“당신은 미성년 입니다.”);
부분을 실행하여 “당신은 미성년 입니다.”라는 메세지를 출력하게 된다.
if ~ else if ~ else 구조
if ~ else if ~ else 구조는 조건이 여러개인 경우 사용되며 형식과 순서도는 다음과 같다.
if ~ else if ~ else 구조는 조건이 여러개인 경우 사용되며 형식과 순서도는 다음과 같다.
형식
if ( 조건식 1 ) {
실행코드 1
}
else if ( 조건식 2 ) {
실행코드 2
}
else if ( 조건식 3 ) {
실행코드 3
}
else {
실행코드 4
}
실행코드 1
}
else if ( 조건식 2 ) {
실행코드 2
}
else if ( 조건식 3 ) {
실행코드 3
}
else {
실행코드 4
}
else if 문을 이용 “수”, “우”, “미”, “양”, “가”를 출력하는 프로그램 “elseif.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 score = 87;
if ( score >= 90 ) {
out.println(“수”);
}
else if ( score >= 80 ) {
out.println(“우”);
}
else if ( score >= 70 ) {
out.println(“미”);
}
else if ( score >= 60 ) {
out.println(“양”);
}
else {
out.println(“가”);
}
%>
</body>
</html>
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 score = 87;
if ( score >= 90 ) {
out.println(“수”);
}
else if ( score >= 80 ) {
out.println(“우”);
}
else if ( score >= 70 ) {
out.println(“미”);
}
else if ( score >= 60 ) {
out.println(“양”);
}
else {
out.println(“가”);
}
%>
</body>
</html>
위 프로그램에서 변수 “score”에 초기값으로 87(점)이 저장되어 있는데, 첫 번째 조건식 “score >= 90″은 “87 >= 90″이 되어 거짓이 되므로 다음 조건식 “score >= 80″을 비교하게 된다. 이 조건식은 “87 >= 80″이 되어 참이 되므로
out.println(“우”);
을 실행 “우”를 출력한 후 프로그램을 종료한다. 만약 변수 “score”에 50(점)이 저장되어 있다면 모든 위 프로그램의 모든 조건식이 거짓이 되어 마지막 else 부분의 코드를 실행 “가”를 출력할 것이다.