출처 : https://wikidocs.net/book/31
필사 :
for each는 J2SE 5.0부터 추가되었다. for each라는 키워드가 따로 있는 것은 아니고
동일한 for를 이용한다. 하지만 조건식 부분의 문법이 조금 다르다.
다음은 이전에 공부했던 평범한 for문이다.
String[] numbers = {"one", "two", "three"};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
위 for문은 다음처럼 for each 구조로 변경할 수 있다.
String[] numbers = {"one", "two", "three"};
for (String number : numbers) {
System.out.println(number);
}
===
for each문은 보기에 매우 직관적이다.
===
for each 문의 구조는 다음과 같다.
for (type var: iterate) {
body-of-loop
}
위에서 iterate는 루프를 돌릴 객체이고
iterate 객체에서 한개씩 순차적으로 var에 대입되어 for문이 수행된다.
iterate로 사용할 수 있는 자료형은 루프를 돌릴 수 있는
자료형(배열 및 ArrayList 등)만 가능하다.
다음은 위 예제를 ArrayList로 구현한 예제이다.
for문의 사용법은 Strint[] 배열을 사용했을 때와 완전히 동일하다.
import java.util.ArrayList;
import java.util.Arrays;
public class Sample {
public static void main(String[] args) {
ArrayList<String> numbers = new ArrayList<>(Arrays.asList("one", "two", "three"));
for (String number : numbers) {
System.out.println(number);
}
}
}
단, for each문은 따로 반복횟수를 명시적으로 주는 것이 불가능하고,
1스탭씩 순차적으로 반복될 때만 사용가능하다는 제약이 있다.
느낀점 :
iterate : (계산, 컴퓨터 처리 절차를) 반복하다.
i < numbers.length; <O> i < numbers.length(); <X>
콜론(:) 연산자의 의미를 잘 모르겠다.
=> 자바에서 콜론(:)은 연산자가 아니다.
여러 곳(점프 아웃 레이블, 삼항 조건, For-each 루프, 주장, swtich문, 메서드 참조)에서
여러 의미로 쓰이는데 (예: 삼항 연산자 -> else)
for에서는 in으로 생각하면 좋다.
for (A : B)
-> B에서 차례대로 객체를 꺼내서 A에 넣겠다.
파이썬에서의 'for i in [List]:'로 생각하면 편할 것이다.
<참고 자료>
'국비학원 전 강의 필사 > 점프 투 자바' 카테고리의 다른 글
#05-01 객체지향 프로그래밍이란? - <점프 투 자바> (0) | 2022.09.02 |
---|---|
#05 객체지향 프로그래밍 - <점프 투 자바> (0) | 2022.09.02 |
#04-04 for 문 - <점프 투 자바> (0) | 2022.09.01 |
#04-03 while 문 - <점프 투 자바> (0) | 2022.09.01 |
#04-02 switch/case 문 - <점프 투 자바> (0) | 2022.09.01 |
댓글