JSP

221202 JSTL for문 forEach

주영재 2022. 12. 2. 17:12

forEach
varStatus : 향상된for문에서 돌아가는 a값의 상태값을 확인할 수 있음
사용할 수 있는 변수들이 들어 있음. index와 count가 있다.
index는 인덱스번호, count는 순서

 

jstl_foreach

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<h3>1~100까지 홀수 합</h3>
	<%
	int sum=0;
	for(int i=1;i<=100;i+=2){
		sum=sum+i;
	}
	%>
	결과:<%=sum%>
	<hr/>
	<c:set var="sum" value="0"/>
	<c:forEach var="i" begin="1" end="100" step="2" >
		<c:set var="sum" value="${sum+i}"/>
	</c:forEach>	
	결과 : ${sum }
	
	<hr/>
	<h3>2~9단까지 구구단 세로로 출력(jstl)</h3>
	<%--step 생략시 자동으로 1 --%>
	<c:forEach var="i" begin="2" end="9">
		<c:forEach var="j" begin="1" end="9">
			
		${i } ${' x ' } ${j } ${' = ' } ${i*j }<br>
		</c:forEach>
		<br>
	</c:forEach>
	
	<hr>
	<h3>향상된 포문</h3>
	<%
		int[] arr =new int[] {1,2,3,4,5};
		for(int a : arr){
			out.println(a);
		}
	%>
	<br>
	<c:set var="arr" value="<%=new int[] {1,2,3,4,5}%>"/>
	
	<c:forEach var="a" items="${arr }" varStatus="s">
		인덱스번호: ${s.index }<br>
		순서:${s.count }<br>
		값:${a }<br>
	</c:forEach>
	
	
	
</body>
</html>

step은 생략이 가능함. 생략하면 자동으로 1임. i++이 되는 것.

자바구문과 비교하면서 보기. 직관적이다. 뭐가 뭔지 파악하는 건 어렵지 않다.

단, 향상된for문은 조금 어려운데, for(a : arr)이면 a가 var이고, arr이 items임