인덱스나 요소 수정이 필요하거나 특정 조건에 따른 반복이 필요한 경우 일반 for문
값만 순회할 경우, 향상된 for문(for-each)문을 사용하자
[일반 for문]
// 배열 선언과 초기화
int[] numbers = {1, 2, 3, 4, 5};
// 배열의 길이를 구하고, 인덱스를 사용하여 요소에 접근
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
[향상된 for문]
// 배열 선언과 초기화
int[] numbers = {1, 2, 3, 4, 5};
// 간단한 문법으로 배열의 요소에 접근
for (int num : numbers) {
System.out.println(num); //1트 -> num = numbers[0], 2트 -> num = numbers[1]
}
차이점 설명:
1. 문법 간결성:
ⓐ 일반 for문: 배열의 길이를 알아내고, 인덱스를 증가시키며 배열 요소에 접근하는 복잡한 구조.
ⓑ향상된 for문: 간단한 문법으로 배열의 요소에 직접 접근.
2. 인덱스 관리:
ⓐ 일반 for문: 인덱스를 직접 관리해야 하므로 코드가 상대적으로 복잡.
ⓑ 향상된 for문: 인덱스를 별도로 신경쓰지 않아도 되어 코드가 간결.
3. 컬렉션 사용:
ⓐ 일반 for문: 배열 뿐만 아니라 모든 Iterable 객체에 적용 가능.
ⓑ 향상된 for문: 주로 배열이나 컬렉션 순회에 특화되어 있음.
(컬렉션 -> 일단은 : 배열과 비슷한 느낌으로 보기)
4. 요소 수정:
ⓐ 일반 for문: 요소를 수정할 때 사용 가능.
ⓑ 향상된 for문: 요소를 읽는 용도로만 사용되며, 요소 수정은 불가능.
(즉 int i와 같은 증가하는 인덱스 값을 직접적으로 사용해야 하는 경우는 사용을 할 수 없다.)
[결론] 향상된 For문을 사용 하는 경우
① 요소의 값만 필요한 경우 : 요소의 값을 읽기만 하는 경우에는 향상된 for문이 더 간결하고 가독성이 좋음
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
② 인덱스를 사용하지 않는 경우: 인덱스를 사용하지 않고 배열 또는 컬렉션의 값을 순차적으로 처리해야 할 때
List<String> fruits = Arrays.asList("Apple", "Banana", "Orange");
for (String fruit : fruits) {
System.out.println(fruit);
}
[결론] 일반 For문을 사용 하는 경우
① 인덱스나 요소 수정이 필요한 경우 : 배열이나 컬렉션의 요소를 수정하거나 특정 조건에 따라 작업을 수행할 때
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
numbers[i] = numbers[i] * 2;
}
② 조건에 따른 반복이 필요한 경우: 특정 조건을 만족하는 경우에만 반복을 수행해야 할 때
int[] numbers = {1, 2, 3, 4, 5};
// 일반 for문을 사용하여 배열의 각 요소를 검사하고 짝수만 출력
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
System.out.println(numbers[i]);
}
}
'Java > [inflearn] 자바 입문' 카테고리의 다른 글
[김영한_자바입문][9. 메서드] 변수 선언 및 초기화 (p.30) (0) | 2024.01.19 |
---|---|
[김영한_자바입문][9. 매서드] 반환타입과 매개변수가 다를 때_묵시적 형변환 (p.25) (0) | 2024.01.19 |
[김영한_자바입문][8. 배열] 변수 선언 및 초기화 (p.24) (0) | 2024.01.19 |
[김영한_자바입문][7. 훈련] 변수 선언 및 초기화_임시 변수 (p.14, p.17, p.21) (0) | 2024.01.19 |
[김영한_자바입문][4. 조건문] 변수 선언 및 초기화 (p.11) (0) | 2024.01.18 |