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