🔖 INDEX
자바 프로그래밍에서 for-each 문법은 "향상된 for 문" 또는 "for-each 루프"라고도 불리며, 배열이나 컬렉션의 모든 요소를 순회하는 데 사용되는 간결한 반복문입니다. for-each 문법은 기존의 for 문보다 코드가 간결하고 가독성이 좋아, 일반적으로 요소를 순회하며 처리하는 작업에 사용됩니다.
자바의 for-each 문법은 Java 5(Java SE 5, JDK 1.5) 버전부터 도입되었습니다. 이 버전에서는 다양한 새로운 기능과 개선 사항이 추가되었는데, 그 중 하나가 바로 for-each 루프입니다.
자바의 for-each 문법은 'Iterable' 인터페이스를 구현한 객체와 배열에 사용할 수 있습니다. 주로 자바의 컬렉션 프레임워크에서 제공하는 'List', 'Set', 'Map'과 같은 컬렉션 객체에 사용되며, 배열에서도 사용할 수 있습니다.
for-each 문의 문법
for-each 문의 기본 구조는 다음과 같습니다.
for (자료형 변수명 : 배열이름 또는 컬렉션 객체) {
// 실행할 코드
}
- 반복할 객체나 배열의 첫 번째 요소부터 시작합니다.
- 해당 요소를 지정한 변수에 할당합니다.
- 코드 블록 내의 문장을 실행합니다.
- 마지막 요소까지 모두 순회할 때까지 2~3번의 과정을 반복합니다.
즉, for-each 문은 배열이나 컬렉션 객체를 통해 자동으로 인덱스를 처리하고, 요소를 순차적으로 가져와 변수에 할당합니다. 따라서 인덱스 변수를 관리하거나 요소를 직접 가져오는 코드를 작성할 필요가 없습니다.
for-each 문의 예제 코드
예를 들어, 다음과 같은 배열을 for-each 문을 사용하여 출력할 수 있습니다.
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println("number: " + number);
}
for-each 문은 컬렉션 객체를 사용하는 경우에도 마찬가지로 적용할 수 있습니다. 예를 들어, 다음과 같은 리스트를 for-each 문을 사용하여 출력할 수 있습니다.
import java.util.ArrayList;
import java.util.List;
List<String> names = new ArrayList<String>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
for (String name : names) {
System.out.println("name: " + name);
}
사용 시 제한 사항
for-each 문은 몇 가지 제한 사항이 있습니다.
- 인덱스 값이 필요한 경우 : for-each 문은 인덱스 값을 자동으로 관리하므로, 인덱스 값을 직접 사용해야 하는 경우에는 기존의 for 문을 사용해야 합니다.
- 요소를 수정할 수 없음 : for-each 문에서는 순회하는 요소를 직접 수정할 수 없습니다. 요소를 변경하려면, 기존의 for 문을 사용하거나 반복자(iterator)를 사용해야 합니다.
- 역순 또는 사용자 지정 순서로 순회할 수 없음 : for-each 문은 항상 순차적으로 순회하므로, 역순이나 사용자 지정 순서로 순회하려면 기존의 for 문이나 다른 방법을 사용해야 합니다.
이러한 제한 사항을 고려하여 for-each 문을 사용하면, 코드의 가독성을 높이고 효율적인 프로그래밍을 할 수 있습니다.
다음은 for-each 문의 활용 예입니다.
import java.util.HashMap;
import java.util.Map;
Map<String, Integer> scores = new HashMap<String, Integer>();
scores.put("Alice", 90);
scores.put("Bob", 85);
scores.put("Charlie", 95);
// 키(Key)만 순회
for (String key : scores.keySet()) {
System.out.println("Name: " + key);
}
// 값(Value)만 순회
for (Integer value : scores.values()) {
System.out.println("Score: " + value);
}
// 키와 값 모두 순회
for (Map.Entry<String, Integer> entry : scores.entrySet()) {
System.out.println("Name: " + entry.getKey() + ", Score: " + entry.getValue());
}
for-each 문은 자바 프로그래밍에서 자주 사용되는 구문으로, 코드를 간결하게 작성하고 가독성을 높이는 데 큰 도움을 줍니다. 그러나 일부 상황에서는 for-each 문의 제한 사항으로 인해 기존의 for 문이나 다른 방법을 사용해야 하는 경우도 있으므로, 상황에 맞게 적절한 방법을 선택하여 사용하는 것이 중요합니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
초보 자바 프로그래밍(11) - 논리연산자 (Logical Operators) (0) | 2023.05.01 |
---|---|
초보 자바 프로그래밍(10) - 산술, 비교연산자 (0) | 2023.05.01 |
초보 자바 프로그래밍(8) - 반복문 for (0) | 2023.05.01 |
초보 자바 프로그래밍(7) - 반복문 do-while (0) | 2023.05.01 |
초보 자바 프로그래밍(6) - 반복문 while (0) | 2023.05.01 |
댓글