C#문법

[C#문법] Part8-4 반복문: foreach문(배열 응용)

BlackWolfDev 2023. 2. 3. 19:53

[ 개요 ]

foreach문은 언뜻 보면 for문과 비슷하게 생겼다.
실제로 foreach문은 for문과 동작 방식이 비슷한데 for문을 더 쉽게 사용하도록 나온 문법이다.
이번 시간에는 반복문의 응용과 foreach문의 사용법에 대해서 알아본다.


[ 개념 ]

이전에 배운 반복문들은 조건식을 통해 반복 문의 끝을 정해주었다.

foreach (element in iterable-item)
{
   // 코드
}

그러나 foreach문은 인자로 들어온 배열같이 여러 데이터가 있는 자료형(iterable-item)의 요소(element)들을 순서대로 접근할 수 있도록 한다.

다른 반복문을 통해서도 배열의 요소를 출력할 수 있지만 인덱스가 배열의 크기를 넘는다면 오류가 날 수 있기에 사용이 조심스럽지만 foreach문은 안전하게 배열의 모든 요소를 출력하는 것이 가능하다.

static void Main(string[] args)
{
    int[] arr = { 0, 1, 2 };
    for(int i=0; i < 3; i++)
    {
        Console.WriteLine(arr[i]);
    }
}

콘솔결과값

for문을 이용하여 배열의 모든 요소를 출력하였다.

위와 같이 배열의 크기를 알면 배열의 인덱스를 변수로 넣어주어 출력이 가능하다.

그러나 조건식에 배열의 크기를 넘는 숫자를 넣어주면 에러가 날 것이다.

(조건식에 i < arr.Length를 사용하는 방법도 있다. Length를 붙여주면 배열의 크기를 정확히 반환해준다)

그러나 foreach를 사용하면 for문보다 더 깔끔하고 안전하게 반복할 수 있다.

static void Main(string[] args)
{
    int[] arr = { 0, 1, 2 };
    foreach(int i in arr)
    {
        Console.WriteLine(i);
    }
}

배열의 요소를 담을 변수 i를 선언해 주고 in을 사용하여 배열의 이름을 넣어주면 i에 배열의 요소가 반복문을 돌 때마다 순서대로 들어간다.


[ 반복문과 다차원 배열의 응용 ]

이전까지 배열의 요소 하나하나 접근하여 사용하였다.
그래서 이번 시간에 1차원 배열에 반복문을 사용하여 출력을 했는데
이제 다차원 배열에서도 어떻게 사용할 수 있는지 알아보자

static void Main(string[] args)
{
    int[,] arr = new int[3, 3] { { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 } };

    //이중 for문을 사용한 2차원 배열 출력 
    for (int i = 0; i < arr.GetLength(0); i++)
    {
        for (int j = 0; j < arr.GetLength(1); j++)
        {
            Console.WriteLine(arr[i, j]);
        }
    }
    Console.WriteLine();


    //foreach문을 사용한 2차원 배열 출력
    foreach (int i in arr)
    {
        Console.WriteLine(i);
    }
}

콘솔결과값

728x90
반응형