Section 28.4: 다양한 스타일의 반복문들

while

가장 흔하게 사용되는 형태의 반복문이다. 이 이 방식의 한가지 단점은 반복문 수행이 얼마나 진행되고 있는지에 대해 확인할 수 있는 정보가 기본적으로 제공되지 않는다는 것이다.

/// condition 으로 표현된 조건이 만족되는 동안 반복문이 계속하여 수행된다 while(condition) { /// 반복 작업을 수행한다 }

do

while 문과 유사하나, 조건문 만족 여부 확인을 반복문의 시작 지점이 아닌 끝 지점에서 수행한다는 차이점이 있다. 이로 인해 반복문에 기술된 동작이 최소 한번은 무조건 실행되는 특징을 가지고 있다.

do { /// 반복 작업을 수행한다 } while(condition) /// condition 으로 표현된 조건이 만족되는 동안 반복문이 계속하여 수행된다

for

또하나의 흔히 사용되는 형태의 반복문이다. 반복문 수행시마다 인덱스 값 (이 예제에서는 i) 이 증가하며 해당 값을 활용할 수 있다. 주로 배열을 다루기 위해 사용된다.

for ( int i = 0; i < array.Count; i++ ) { var currentItem = array[i]; /// "currentItem" 을 이용해 작업을 수행한다 }

foreach

IEnumarable 객체를 요소 반복하는 보다 세련된 방법이다. 현재 객체의 인덱스 값이나 리스트의 전체 갯수 등을 전혀 신경쓰지 않아도 된다는 장점이 있다.

foreach ( var item in someList ) { /// "item" 에 대하여 원하는 작업을 수행한다 }

ForEach 메소드

다른 반복문 스타일들은 주로 컬렉션에서 특정 요소를 선택하거나 갱신하기 위해 사용된다면, 이 스타일은 주로 컬렉션의 모든 요소들을 대상으로 특정 메소드를 바로 불러주기 위해 사용된다.

list.ForEach(item => item.DoSomething()); // 혹은 list.ForEach(item => DoSomething(item)); // 혹은 method group 을 호출한다 list.ForEach(Console.WriteLine); // 배열에 대해 사용하기 Array.ForEach(myArray, Console.WriteLine);

기억해야 할 중요한 점은 이 메소드는 List<T> 인스턴스들과 배열에 대한 정적 메소드 (static method) 로만 제공된다는 것이다 - 이는 LINQ 의 일부분이 아니다.

LINQ 병렬 (Parallel) Foreach

LINQ 버전의 ForEach 라고 볼 수 있으나, 한가지 차이점은 이는 원하는 반복 작업을 병렬적으로 수행한다는 점이다. 이것이 의미하는 바는 컬렉션 내의 모든 요소들에 대한 작업 수행이 동시에 일제히 일어난다는 것이다.

collection.AsParallel().ForAll(item => item.DoSomething()); /// 혹은 collection.AsParallel().ForAll(item => DoSomething(item));
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

'번역 > C# Notes for Professionals' 카테고리의 다른 글

28.6: 반복문에서의 continue 사용  (0) 2021.09.16
28.5: 중첩 (nested) 반복문  (0) 2021.09.15
28.3: Foreach 반복문  (0) 2021.09.08
28.2: Do - While 반복문  (0) 2021.09.03
28.1: For 반복문  (0) 2021.08.27

+ Recent posts