for-each문(확장 for문) , for-each문 형식, for-each문의 인스턴스 배열

CODEDRAGON Development/Java

반응형


 

for-each(확장 for; Enhanced for )

·       배열의 일부가 아닌, 배열의 전체를 참조할 필요가 있는 경우에 유용하게 사용할 수 있습니다. 배열과 컬렉션의 모든 요소를 참조하기 위해 사용합니다.

·       for-each 문을 통한 값의 변경은 실제 배열에 반영되지 않으니, 값의 참조 목적으로만 사용해야 합니다.

·       자바 5.0 이상(JDK 1.5 이상)에서 사용 가능합니다.

·       같은 성능을 유지하면서도 코드의 명확성을 확보하고 발생할 수 있는 버그를 예방해 줍니다.

 

 

 

 

for-each문 형식

·       콜론(:) 왼쪽에는 배열요소의 값이 반복 저장될 변수가 오고, 오른쪽에는 반복대상(배열 or 컬렉션)이 위치합니다.

·       저장원소타입은 배열 또는 컬렉션에 저장된 원소의 타입과 동일해야 합니다.

·       중괄호({})는 일반적인 for문과 역할이 같습니다.

 

명시한 반복대상(배열이나 컬렉션)의 길이만큼 반복되어 실행됩니다.

반복마다 각 요소는 명시한 변수의 이름으로 저장되며, 블록안의 문장에서는 이 변수를 사용하여 각 요소를 참조할 수 있습니다.

for(저장원소타입 제어변수명 : 반복대상){

// 반복 수행할 내용

}

 

 

배열 요소 출력

·       반복문이 한 번 반복될 때마다 변수 e에 컬렉션(또는 배열) arr의 인덱스 요소가 하나씩 저장되며, e에 저장된 원소와 한 칸의 공백을 출력합니다.

·       반복은 배열의 인덱스 0부터 n-1까지 반복되어집니다.

·       배열 자체는 참조만 되기 때문에 변경되지 않습니다.

 

int[] arr = new int[]{10, 20, 30, 40, 50};

 

for(int i=0; i<arr.length; i++){

System.out.println(arr[i]);

}

for(int e: arr){

System.out.println(e);

}

 

 

 

 

for-each문의 인스턴스 배열

·       인스턴스 배열에 저장된 참조 값의 변경은 불가능하지만,

·       참조 값을 통한 인스턴스의 접근은 데이터 변경도 가능합니다.