For each(또는 foreach)는 컬렉션 안의 항목들을 횡단하는 제어 흐름 문이다. Foreach는 표준 For 대신 사용되는 것이 일반적이다. 그러나 loop 구조체를 위한 다른 루프와 달리 foreach 루프[1]는 일반적으로 명시적인 카운터를 관리하지 않는다. 즉, "이것을 x번 하라"라고 하지 않고 "이 집합 안에서 모든 것에 대해 이것을 하라"라고 필수적으로 명시하게 된다. 잠재적인 순환 횟수 오류(off-by-one error)를 예방하고 코드를 더 단순하게 읽힐 수 있게 만들어준다. 객체 지향 언어에서는 횡단을 위해 비명시적인 경우에도 반복자가 종종 사용된다.

For each 루프는 대개 일련의 요소들 안의 항목들을 반복하기 위해 사용된다.

문법

편집

문법은 언어에 따라 다양하다. 대부분은 다음과 비슷한 형태로 단순한 낱말 for를 사용한다:

for each item in collection:
  do something to item

언어 지원

편집

리스트 리터럴의 예:

foreach (1, 2, 3, 4) {
    print $_;
}

배열의 예:

foreach (@arr) {
    print $_;
}
foreach $x (@arr) { #$x is the element in @arr
    print $x;
}

해시(Hash)의 예:

foreach $x (keys %hash) {
    print $x . " = " . $hash{$x}; # $x is a key in %hash and $hash{$x} is its value
}

콜렉션 멤버들의 직접 수정:

@arr = ( 'remove-foo', 'remove-bar' );
foreach $x (@arr){
    $x =~ s/remove-//;
}
# Now @arr = ('foo', 'bar');

자바스크립트

편집

Object 내의 키를 순서 없이 반복시키기 위해 자바스크립트는 for...in 루프를 사용한다:

for (var key in object) {
    // Do stuff with object[key]
}

같이 보기

편집

각주

편집
  1. “D Programming Language foreach Statement Documentation”. Digital Mars. 2008년 8월 4일에 확인함.