foreach 루프는 for 루프와 비슷하지만, 배열이나 컬렉션의 각 요소마다 반복 작업을 실행한다는 점이 다릅니다. 따라서 foreach 루프에서는 인덱스가 존재하지 않으며, 요소에 직접 접근하여 값을 처리할 수 있습니다.
foreach 루프의 기본 구조
foreach 루프는 다음과 같은 형태로 작성합니다:
foreach (int p in arr)
Console.Write(p + " ");위 코드는 배열 arr의 모든 요소를 처음부터 끝까지 순회하면서 각 요소를 변수 p에 담아 출력합니다.
예제: 버블 정렬 후 foreach로 출력하기
다음은 버블 정렬(Bubble Sort)로 배열의 요소를 오름차순으로 정렬한 후, foreach 루프를 사용해 정렬된 결과를 화면에 출력하는 완전한 예제입니다.
using System;
namespace BubbleSort {
class MySort {
static void Main(string[] args) {
int[] arr = { 78, 55, 45, 98, 13 };
int temp;
for (int j = 0; j <= arr.Length - 2; j++) {
for (int i = 0; i <= arr.Length - 2; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i + 1];
arr[i + 1] = arr[i];
arr[i] = temp;
}
}
}
Console.WriteLine("Sorted:");
foreach (int p in arr)
Console.Write(p + " ");
Console.Read();
}
}
}실행 결과
Sorted: 13 45 55 78 98
정리
foreach 루프는 인덱스 관리 없이 배열이나 컬렉션의 모든 요소를 간편하게 순회할 수 있어, 코드의 가독성을 높이고 인덱스 범위 초과 같은 오류를 방지하는 데 유용합니다. 단순히 요소를 읽거나 출력하는 경우라면 for 루프보다 foreach 루프를 사용하는 것이 좋습니다.