728x90

 

For each문

= 향상된 for문

= 개선된 for문

 

배열이나 컬렉션의 요소(element)에 대해 특정 작업을 반복적으로 가져오기 위해 사용

for(타입 변수명 : 배열or컬렉션){
		반복할 코드
}

 

특징

자바5.0(JDK 1.5)이상 사용가능

일반적인 for문과 달리 배열과 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용 가능

for each 문은 따로 반복횟수를 명시적으로 주는 것이 불가능하며,

순차적으로 반복될 때만 사용가능

for each문 안에 선언된 변수는 for문 내에서만 사용가능(지역변수 취급)

 

 

장점

1.심플, 가독성Good

2.배열 인덱스 문제 해결

ex) ArrayIndexOutOfBoundsException 예외발생 해결

 

 

단점

1.인덱스를 사용불가x

2.배열 & ArrayList 값을 사용가능하나 수정불가x

 

 

로직

배열or컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀져 변수에 저장됨

변수명을 출력하면 해당 인덱스 배열 요소값이 출력

배열or컬렉션을 처음부터 하나씩 변수명에 대입하여 바디 부분을 실행함

즉, 배열or컬렉션[0]의 값을 변수명에 다시 담아 바디부분을 실행하고 총길이 만큼 for문이 도는 것

 

ex)

for(int num : arrList){
		System.out.println(num);
}

 

아래처럼 a를 al을 두가지 반복 시키면 헷갈리는 부분이 있어서 정리해봤다

  • a를 반복시킬 경우 : 변수 al 전체를 al의 길이만큼 반복
  • al을 반복시킬 경우 : 변수 al의 요소 하나씩 순서대로 al길이만큼 반복

 

 

ex)구체적 예시

 

728x90
반응형

+ Recent posts