C# foreach 문이란?
foreach 문은 배열이나 컬렉션의 각 요소에 대해 하나의 문장 또는 여러 문장을 반복 실행할 때 사용하는 반복문입니다.
for 문과 비슷한 역할을 하지만, foreach는 배열이나 컬렉션에 포함된 각 요소를 순서대로 자동으로 순회한다는 점이 다릅니다. 따라서 인덱스(index)를 직접 다루지 않아도 되며, 코드가 더 간결하고 가독성이 높아집니다.
아래에서는 버블 정렬(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();
}
}
}코드 설명
위 예제에서 int[] arr 배열에는 정렬되지 않은 숫자들이 들어 있습니다. 중첩된 for 문을 통해 버블 정렬 알고리즘으로 인접한 두 요소를 비교하고, 필요하면 서로 교환하여 오름차순으로 정렬합니다.
정렬이 완료되면 foreach (int p in arr) 구문이 배열의 각 요소를 차례로 변수 p에 담아 출력합니다. 이처럼 foreach 문은 인덱스 관리 없이도 배열 전체를 손쉽게 순회할 수 있게 해줍니다.
실행 결과
Sorted: 13 45 55 78 98