본문 바로가기

C# 일기

3. foreach문

C++을 사용할 때 까지는 for문을 다뤘었다. 

 

기준이 되는 연산식을 직접 for문 안에 대입하고 기입한 연산식이 참이 될 때 까지 증감식을 통해 반복하는 구조였다.

 

앞서 2. 배열 에서 배웠던 배열에 담긴 자료형을 다룰 때에 유용한 반복문이 C#에서 추가로 생겨났는데,

 

이 개념이 오늘 다루어 볼 foreach 문이다.

 

 

 

 

foreach 문은, 구문 안에 배열 혹은 추후에 다루게 될 컬렉션을 삽입하여, 내부의 값에 전부 접근할 때 까지 index값을 조정하며 순환하는 반복문이다.

 

using System;

namespace Favor
{
   internal class Program
   {
      static void Main(string[] args)
      {
         int[] arr1 = new int[5] { 1, 2, 3, 4, 5 };
         for(int i = 0; i < 5; i++)
            Console.WriteLine(arr1[i]);
      }
   }
}

 

기존에는 특정 배열의 각 인덱스 값에 접근하기 위해서는, 그를 위한 연산식을 꾸려, 배열의 모든 인덱스 값에 접근하게 했다면,

 

foreach문에서는 배열만 입력하면 그 배열의 모든 인덱스값을 순회하며 foreach문의 코드를 수행한다.

 

 

using System;

namespace Favor
{
   internal class Program
   {
      static void Main(string[] args)
      {
         int[] arr = new arr[5] { 1, 2, 3, 4, 5 };
         
         foreach(int i in arr)
            Console.WriteLine(arr[i]);
      }
   }
}

 

foreach문의 사용 방법은 위와 같다.

 

여기서 in 뒤의 값에는 각 인덱스 값에 접근하길 원하는 배열을 입력하고,

 

순차적으로 접근할 인덱스 즉, 순서를 나타내는 변수로 int i를 입력한다.

 

배열에 접근할 때 마다 i의값은 접근한 인덱스의 값을 갖게된다.

 

쉽게 말해, foreach문 반복 중, arr 배열의 3번째 인덱스에 접근하게 된다면,

 

3의 값이 i에 대입되어, Console.WriteLine(arr[3]); 이 실행된다.

 

foreach문은 for문과 마찬가지로 각 인덱스에 순차적으로 접근하며,

 

모든 인덱스에 접근했다면 foreach문을 탈출하게된다.

 

 

 

 

 

 

 

foreach문은 전술했듯 컬렉션이나 배열을 통한 자료관리에 유용하며,

 

반복문 수행의 기준이 되는 배열이나 컬렉션의 이름을 명시할 수 있어 가독성 측면에서 유리하다.

 

다만, for문 처럼 연산식을 설정하여 반복문의 분기나 조건을 직접 제어할 수 없다는 맹점도 존재하기 때문에,

 

관리하고자 하는 자료구조나 관리법에 따라 올바른 반복문을 선택하는 것이 중요하다.

 

  

 

'C# 일기' 카테고리의 다른 글

5. 얕은 복사(Shadow Copy)와 깊은 복사(Deep Copy)  (0) 2024.03.05
4. 생성자 (Constructor)  (0) 2024.03.04
2. 배열  (0) 2024.03.04
1. 값 형식 변수와 참조 형식 변수  (0) 2024.03.04
0. C# 입출력 (Console.)  (0) 2024.03.04