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 |