Contents
접기
728x90
기본 개념
foreach문은 다른 반복문처럼 몇번 반복에 초점을 두기보다는, 특정한 배열, 컬렉션 등 자료의 뭉탱이들을 기준으로 돈다.
쉽게 말하면,
“이 뭉치 안에 뭐가 들었는지 하나씩 꺼내서 써보자!” 하는 문법이다.
foreach 문법
foreach (자료형 변수명 in 뭉탱이)
{
// 배열 또는 컬렉션의 모든 요소에 대해 반복적으로 실행되는 코드
}
- 자료형: 꺼내는 요소의 타입 (ex. int, string, char 등)
- 변수명: 뭉탱이 안에서 하나씩 꺼내어 임시로 저장하는 이름
- in: "뭉탱이 안에 있는 것들 중에서"라는 뜻
- 뭉탱이: 배열, 리스트, 문자열 등 여러 개 모여 있는 데이터
📝 예시1: 배열돌기
string[] fruits = { "사과", "바나나", "포도" };
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
🔹출력
사과
바나나
포도
📌 fruits라는 뭉탱이 안에서 fruit을 하나씩 꺼내서 Console.WriteLine()으로 출력
📝 예시2: 문자열(char)하나씩 돌기
string word = "Hello";
foreach (char ch in word)
{
Console.WriteLine(ch);
}
🔹출력
H
e
l
l
o
📝 예시3: 리스트 돌기
리스트(List)는 말 그대로 "목록"인데, foreach문은 이 목록에 있는 걸 하나씩 꺼내서 사용할 수 있다.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> foods = new List<string>() { "피자", "떡볶이", "치킨" };
foreach (string food in foods)
{
Console.WriteLine($"좋아하는 음식: {food}");
}
}
}
🔹출력
좋아하는 음식: 피자
좋아하는 음식: 떡볶이
좋아하는 음식: 치킨
📌 리스트에는 Add()로 값을 추가할 수 있다.
foods.Add("라면");
왜 foreach를 쓰는 걸까?
- 간단한 문법: 인덱스 없이도 쉽게 반복 가능(foods[0], foods[1] 이렇게 일일이 안 해도 됨)
- 읽기 쉬움: 코드가 직관적이라 실수 줄이기 좋음
- 안전함: 인덱스 범위 벗어나는 실수를 막을 수 있음
- 배열, 리스트 모두 사용 가능: 다양한 컬렉션에서 활용 가능함
foreach 주의점
- 인덱스 직접 접근 불가
- 요소 변경 불가(반복문 안에서 직접 값을 바꿀 수 없음)
- 중간에 나가고 싶다면? break와 continue는 사용 가능함 (예외 아님!)
📖 정리
foreach란? | 뭉탱이 데이터 안에서 하나씩 꺼내 반복하는 문법 |
주요 장점 | 인덱스 없이도 반복, 문법이 간단하고 실수 줄이기 좋음 |
주의할 점 | 인덱스 접근 ❌, 요소 변경 ❌, 읽기 전용으로 반복 |
사용 대상 | 배열, 리스트, 문자열 등 대부분의 컬렉션 |
728x90
'C# > 제어문' 카테고리의 다른 글
[C#] 예외처리 throw (0) | 2025.03.24 |
---|---|
[C#] 예외처리 try-catch-finally (0) | 2025.03.24 |
[C#] 분기문 return (0) | 2025.03.24 |
[C#] 분기문 continue (0) | 2025.03.24 |
[C#] 분기문 break (0) | 2025.03.24 |