[ 개요 ]
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);
}
}
'C#문법' 카테고리의 다른 글
[C#문법] Part9-1 함수 (0) | 2023.02.15 |
---|---|
[C#문법] Part8-5 반복문: break문, continue문 (4) | 2023.02.03 |
[C#문법] Part8-3 반복문: for문 (1) | 2023.02.03 |
[C#문법] Part8-2 반복문: do-while문 (0) | 2023.02.03 |
[C#문법] Part8-1 반복문: while문 (6) | 2023.02.03 |