Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Java의 Foreach 루프 사용하기

자바 1.5버전부터는 자바에도 Foreach루프가 추가되었다. 실제적으로 자바에서는 명령어가 foreach가 아니라 기존과 동일한 for를 사용하고 있기는 하지만 대부분의 다른 언어에서는 foreach라는 용어를 사용하고 있기때문에 여기서도 foreach라는 말을 사용한다. foreach는 실제적으로 타이핑의 양도 적으면서 가독성도 좋다고 생각하기 때문에 훨씬 편리하다고 생각한다.


String[] temp = { "aa", "bb", "cc" };
for (int i = 0; i < temp .length; i++) { 
    System.out.println(temp[i]);
}

일반적으로 사용하는 for문이다. 솔직히 워낙 익숙한 형태이기 때문에 코딩하기 어렵다거나 그런것도 없을 정도이기는 하다.(가끔 타입에 따라서 length인지 size()인지 헷갈리는것 말고는 ㅡ..ㅡ)

이걸 foreach형태로 사용하면 다음과 같이 작성할 수 있다.


String[] temp = { "aa", "bb", "cc" };
for (String el : temp) {
    System.out.println(el);
}

어느쪽이 좋은지는 각자 나름이겠지만 나는 foreach가 훨씬 편하다. 직관적이고 굳이 갯수를 셀 필요도 없고... foreach의 형태는 다음과 같다.

for (type var : iterate) {
    body-of-loop
}

루프를 돌릴 객체를 iterate부분에 넣어주고 각 루프에서 나오는 타입과 {} 안에서 사용할 변수명을 var에 지정해 주면 된다. iterate부분에 들어가는 타입은 당연히 루프를 돌릴수 있는 형태인 Array나 Collections가 가능하고  Iterable<E>를 상속받은 객체또한 가능하다.

따로 반복회수를 임의로 주는 형태가 아니라면 foreach를 이용해서 훨씬 간단하게 작성할 수 있다.  당연히 루프를 핸들링할 수는 없기 때문에 1스탭씩 순차적으로 반복할때만 사용할 수 있다.
2009/01/19 02:12 2009/01/19 02:12