반응형
반복문 작성 시 For와 Foreach 어떤 것을 사용하는 것이 좋을까?
당연하게도 정답은 상황에 따라 다르다 이지만 개인적으로 실제 프로젝트에선 Default로 Foreach를
알고리즘 풀이에선 Default로 For를 사용하는 편이다.
이렇게 사용하는 가장 큰 이유는 Foreach의 경우 확장성, For의 경우 속도가 빠르기 때문이다.
아래는 각각의 장단점이다.
Foreach
장점 :
- 다양한 컬렉션 유형에서 동작하는 코드를 짤 수 있음 (확장성)
public void Write<T>(IEnumerable<T> somethingToWrite)
{
foreach (var item in somethingToWrite)
{
Console.WriteLine(item);
}
}
- 보다 직관적
- 보다 간결한 코드
단점
- index를 사용해야 할 때 비효율적
- 전체가 아닌 일부를 반복하는데 비효율적
- 항목에 직접 접근할 수 없음
foreach (var number in numbers)
{
// Error -> Cannot assing to 'number' because it is a 'foreach iteration variable'
number++;
}
For
장점 :
- 시작값, 조건값, 증감값 조작에 용이함
- foreach 보다 빠름
- ref : stackOverFlow
- index 사용에 용이함
- 항목에 직접 접근할 수 있음
단점 :
- 확장성이 낮음
ref : stackOverFlow
반응형