Foreach 루프

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

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

문법

문법은 언어에 따라 다양하다. 대부분은 다음과 비슷한 형태로 단순한 낱말 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일에 확인함.