본문 바로가기
국비학원 전 강의 필사/점프 투 자바

#04-05 for each 문 - <점프 투 자바>

by kkooHan 2022. 9. 2.

 

출처 : https://wikidocs.net/book/31

 

 

점프 투 자바

**초보 프로그래머를 위한 자바 입문서** 이 책은 문법위주의 지식보다는 이해중심의 지식을 전달하는 것을 주 목적으로 한다. 예를 들어 자바에서 잘 파악하기 힘든 개념 ...

wikidocs.net

 

 

 

 

 

 

필사 :

 

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]:'로 생각하면 편할 것이다.

 

 

 

<참고 자료>

리뷰나라

네이버 블로그

댓글