다음 두 코드의 출력 결과가 같은가?

과목: C#

문제 번호: 2585

hard
다음 두 코드의 출력 결과가 같은가?
// 코드 A
string[] nums = {"1", "2", "3"};
for (int i = 0; i < nums.Length; i++)
{
    Console.WriteLine(nums[i]);
}

// 코드 B
string[] nums = {"1", "2", "3"};
foreach (string i in nums)
{
    Console.WriteLine(i);
}
A. 같다 - 둘 다 1 2 3 출력
B. 다르다 - A는 1 2 3, B는 0 1 2 출력
C. 다르다 - A는 0 1 2, B는 1 2 3 출력
D. 다르다 - A는 에러 발생

정답: A



for 문과 foreach 문의 동작 방식 차이를 정확히 이해해야 합니다.

⦁ 코드 A (for 문) 분석:
⦁ i는 인덱스 (0, 1, 2)
⦁ nums[i]로 실제 값 접근
⦁ 출력: "1", "2", "3"

⦁ 코드 B (foreach 문) 분석:
⦁ i는 배열 요소의 실제 값
⦁ i가 직접 "1", "2", "3"을 가짐
⦁ 출력: "1", "2", "3"

⦁ 핵심 차이점:
⦁ for: i는 인덱스, nums[i]로 값 접근
⦁ foreach: i는 값 자체

⦁ 결과적 동일성: 접근 방식은 다르지만 최종 출력은 동일합니다.

⦁ 변수명의 혼동: foreach에서 i를 사용했지만, 이는 인덱스가 아닌 요소 값입니다. 실무에서는 의미 있는 변수명(예: num, car)을 사용하는 것이 좋습니다.

💡 학습 팁

이 문제를 포함한 C# 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.