C# 반복문 면접 질문 및 답변

공재원
∙∙조회 5

C# 반복문

1. 반복문의 개요

Q1. 반복문이란 무엇인가요?

A. 반복문은 같은 코드를 여러 번 실행하도록 만드는 제어문입니다. 반복할 코드를 한 번만 작성하고 조건에 따라 여러 번 실행할 수 있습니다.

Q2. C#에서 사용하는 반복문에는 어떤 종류가 있나요?

A. C#에서는 for, while, do-while 세 가지 반복문을 사용합니다.

  • for: 반복 횟수가 정해져 있을 때 사용합니다.
  • while: 조건이 만족되는 동안 반복할 때 사용합니다.
  • do-while: 조건과 관계없이 최소 한 번은 실행해야 할 때 사용합니다.

Q3. 세 가지 반복문의 공통점과 차이점은 무엇인가요?

A. 세 반복문 모두 조건에 따라 코드를 반복 실행한다는 공통점이 있습니다. 차이점은 조건을 검사하는 시점과 반복을 제어하는 요소를 작성하는 위치에 있습니다.

  • for, while: 본문을 실행하기 전에 조건을 검사합니다.
  • do-while: 본문을 실행한 후 조건을 검사합니다.

2. for 문

Q4. for 문이란 무엇인가요?

A. 반복 횟수가 정해져 있을 때 주로 사용하는 반복문입니다. 초기식, 조건식, 증감식을 한곳에 작성하여 반복을 제어합니다.

Q5. for 문의 기본 구조는 어떻게 되나요?

A. 다음 세 가지 요소로 구성됩니다.

  • 초기식: 반복 변수를 선언하고 시작값을 설정합니다. 반복 시작 전에 한 번만 실행합니다.
  • 조건식: 반복을 계속할지 판단합니다. 매 반복 직전에 검사합니다.
  • 증감식: 반복 변수를 변경합니다. 매 반복 직후 실행합니다.

세 요소는 세미콜론으로 구분하며, 마지막 증감식 뒤에는 세미콜론을 붙이지 않습니다.

Q6. for 문의 실행 순서는 어떻게 되나요?

A. 초기식을 한 번 실행한 다음 조건식을 검사합니다. 조건이 참이면 본문을 실행하고 증감식을 실행합니다. 이후 다시 조건식을 검사하며, 조건이 거짓이면 반복을 종료합니다.

Q7. for 문의 반복 변수는 어떻게 사용하나요?

A. 반복 변수는 반복할 때마다 값이 변경되므로 본문에서 현재 반복 순서나 계산에 활용할 수 있습니다.

Q8. 0부터 시작하는 반복과 1부터 시작하는 반복은 어떤 차이가 있나요?

A. 두 방식 모두 조건식을 적절하게 설정하면 같은 횟수만큼 반복할 수 있습니다.

  • i = 0; i < n: 0부터 시작하여 n번 반복합니다.
  • i = 1; i <= n: 1부터 시작하여 n번 반복합니다.

시작값과 부등호를 짝에 맞게 작성해야 합니다. i = 0; i <= n으로 작성하면 n+1번 반복합니다.

Q9. for 문의 증감식에는 어떤 연산을 사용할 수 있나요?

A. i++뿐만 아니라 i--, i += 2, i *= 2 등 다양한 연산을 사용할 수 있습니다.

반복 변수가 증가하는지 감소하는지에 따라 조건식의 부등호 방향도 적절하게 설정해야 합니다.

Q10. for 문에서 선언한 반복 변수는 반복문 밖에서도 사용할 수 있나요?

A. for 문의 초기식에서 선언한 변수는 해당 for 문 안에서만 사용할 수 있습니다.

반복이 끝난 뒤에도 변수의 값이 필요하다면 반복문 밖에서 먼저 변수를 선언해야 합니다.

Q11. 반복문을 이용해 합계를 구할 때 주의할 점은 무엇인가요?

A. 합계를 저장하는 누적 변수는 반복문 밖에서 선언해야 합니다.

반복문 안에서 누적 변수를 선언하면 매 반복마다 초기화되어 이전 값이 유지되지 않습니다.

Q12. 반복문에서 짝수와 홀수를 구분하려면 어떻게 하나요?

A. 나머지 연산자 %를 사용하여 숫자를 2로 나눈 나머지를 확인합니다.

  • 나머지가 0이면 짝수입니다.
  • 나머지가 0이 아니면 홀수입니다.

반복문 안에서 조건문을 사용하면 짝수와 홀수를 구분하여 각각 처리할 수 있습니다.

Q13. 반복문으로 특정 조건에 맞는 값의 개수를 구하려면 어떻게 하나요?

A. 개수를 저장할 변수를 0으로 초기화한 뒤, 반복문 안에서 조건을 검사합니다. 조건에 맞는 값이 발견되면 개수 변수를 1씩 증가시킵니다.

Q14. 곱셈을 누적할 때 시작값은 무엇으로 설정해야 하나요?

A. 곱셈을 누적할 때는 시작값을 1로 설정해야 합니다.

0으로 시작하면 어떤 숫자를 곱해도 결과가 0이 되므로 정상적인 곱셈 누적이 불가능합니다.

Q15. for 문의 초기식, 조건식, 증감식을 생략할 수 있나요?

A. 세 요소는 각각 생략할 수 있지만 세미콜론 두 개는 반드시 남겨야 합니다.

다만 요소를 생략하면 반복을 제어하는 코드가 여러 위치에 흩어져 가독성이 떨어질 수 있습니다. 이런 경우에는 while 문을 사용하는 것이 더 적절할 수 있습니다.


3. while 문

Q16. while 문이란 무엇인가요?

A. 조건식이 참인 동안 본문을 반복 실행하는 반복문입니다. 반복 횟수를 미리 알 수 없거나 특정 조건에 도달할 때까지 반복해야 하는 경우에 사용합니다.

Q17. while 문의 기본 구조는 어떻게 되나요?

A. 초기식은 반복문 앞에 작성하고, 조건식은 while 문의 괄호 안에 작성합니다. 증감식은 일반적으로 반복문 본문 안에 작성합니다.

Q18. for 문과 while 문의 차이점은 무엇인가요?

A. 두 반복문은 같은 작업을 수행하도록 작성할 수 있지만 반복을 제어하는 요소의 위치가 다릅니다.

  • for: 초기식, 조건식, 증감식을 괄호 안에 모아서 작성합니다.
  • while: 초기식은 반복문 앞에, 조건식은 괄호 안에, 증감식은 본문 안에 작성합니다.

Q19. while 문을 사용할 때 주의해야 할 점은 무엇인가요?

A. 조건식에 사용되는 변수가 반복문 안에서 적절하게 변경되는지 확인해야 합니다.

증감식을 빠뜨리거나 조건을 거짓으로 만들지 못하면 반복이 끝나지 않는 무한 루프가 발생할 수 있습니다.

Q20. while 문은 어떤 상황에서 사용하는 것이 적절한가요?

A. 반복 횟수를 미리 계산하기 어렵고, 특정 조건에 도달할 때까지 반복해야 하는 상황에 적절합니다.

예를 들어 숫자의 자릿수를 세거나, 목표 금액에 도달할 때까지 반복하거나, 특정 값이 1보다 커지는 동안 절반씩 줄이는 작업에 사용할 수 있습니다.

Q21. while 문의 조건이 처음부터 거짓이면 어떻게 되나요?

A. while 문은 본문을 실행하기 전에 조건을 검사하므로 조건이 처음부터 거짓이면 본문은 한 번도 실행되지 않습니다.


4. do-while 문

Q22. do-while 문이란 무엇인가요?

A. 본문을 먼저 실행한 다음 조건을 검사하는 반복문입니다. 조건이 처음부터 거짓이어도 본문이 최소 한 번은 실행됩니다.

Q23. do-while 문의 기본 구조는 어떻게 되나요?

A. do 뒤에 반복할 본문을 작성하고, 본문이 끝난 다음 while과 조건식을 작성합니다.

조건식을 작성한 뒤에는 반드시 세미콜론을 붙여야 합니다.

Q24. while 문과 do-while 문의 차이점은 무엇인가요?

A. 가장 큰 차이점은 조건을 검사하는 시점과 최소 실행 횟수입니다.

  • while: 본문 실행 전에 조건을 검사하므로 0번 이상 실행할 수 있습니다.
  • do-while: 본문 실행 후 조건을 검사하므로 최소 1번 실행합니다.

Q25. do-while 문에서 세미콜론이 중요한 이유는 무엇인가요?

A. do-while 문은 조건식 뒤에 세미콜론을 반드시 작성해야 합니다. 반면 일반적인 while 문은 조건식 뒤에 세미콜론을 붙이지 않습니다.

Q26. do-while 문은 어떤 상황에서 사용하는 것이 적절한가요?

A. 일단 작업을 한 번 실행한 다음 결과에 따라 반복 여부를 결정해야 하는 상황에 적절합니다.

사용자에게 입력을 받고 유효한 값인지 검사한 뒤, 잘못된 입력이면 다시 입력받는 상황에 활용할 수 있습니다.


5. 무한 루프

Q27. 무한 루프란 무엇인가요?

A. 반복문의 조건이 계속 참으로 유지되어 반복이 끝나지 않는 상태를 의미합니다.

while (true)처럼 조건을 항상 참으로 설정하면 무한 루프가 발생합니다.

Q28. 무한 루프는 어떤 실수로 발생할 수 있나요?

A. 조건식에 사용되는 변수가 변경되지 않거나, 변수가 조건을 거짓으로 만들지 못하는 방향으로 변경되면 발생할 수 있습니다.

따라서 반복문을 작성할 때는 조건식에 사용되는 값이 적절하게 변경되는지 확인해야 합니다.

Q29. 무한 루프를 의도적으로 사용하는 경우도 있나요?

A. 있습니다. 반복이 끝나는 조건을 반복문 괄호 안에 작성하기 어려운 경우 while (true)를 사용하고, 본문 안에서 종료 조건을 검사하여 반복을 끝낼 수 있습니다.

게임의 매 프레임 처리나 명령을 계속 입력받는 프로그램 등에 활용할 수 있습니다.


6. 반복문의 선택 기준

Q30. 상황에 따라 어떤 반복문을 선택해야 하나요?

A. 반복 횟수와 종료 조건을 기준으로 선택합니다.

  • 반복 횟수를 미리 계산할 수 있으면 for를 사용합니다.
  • 몇 번째 반복인지 본문에서 활용해야 하면 for를 사용합니다.
  • 종료 시점을 미리 알 수 없고 조건에 따라 결정되면 while을 사용합니다.
  • 조건이 처음부터 거짓이면 실행하지 않아야 할 때 while을 사용합니다.
  • 최소 한 번은 반드시 실행해야 하면 do-while을 사용합니다.
  • 종료 조건을 괄호에 작성하기 어려우면 while (true)와 내부 종료 조건을 활용합니다.

Q31. for 문과 while 문은 서로 바꿔 사용할 수 있나요?

A. 가능합니다. 초기식, 조건식, 증감식의 실행 순서를 동일하게 구성하면 두 반복문으로 같은 결과를 만들 수 있습니다.

다만 반복 횟수가 정해져 있다면 for 문이 간결하고, 종료 시점이 조건에 따라 달라진다면 while 문이 더 적절합니다.


7. 중첩 반복문

Q32. 중첩 반복문이란 무엇인가요?

A. 반복문 안에 다른 반복문을 작성하는 구조입니다. 바깥 반복문이 한 번 실행될 때마다 안쪽 반복문이 처음부터 끝까지 실행됩니다.

Q33. 중첩 반복문의 전체 실행 횟수는 어떻게 계산하나요?

A. 안쪽 반복 횟수가 매번 동일하다면 바깥 반복 횟수와 안쪽 반복 횟수를 곱하여 계산합니다.

예를 들어 바깥 반복문이 3번, 안쪽 반복문이 매번 2번 실행되면 안쪽 본문은 총 6번 실행됩니다.

안쪽 반복 횟수가 매번 다르다면 각 회차의 실행 횟수를 더해야 합니다.

Q34. 중첩 반복문은 어떤 상황에서 사용하나요?

A. 행과 열을 구성하거나 좌표, 표, 별 모양 등을 출력하는 상황에 사용합니다.

바깥 반복문은 주로 행을 담당하고 안쪽 반복문은 각 행의 칸을 담당합니다.

Q35. 중첩 반복문에서 줄바꿈 위치가 중요한 이유는 무엇인가요?

A. 줄바꿈을 안쪽 반복문 안에 작성하면 각 칸을 출력할 때마다 줄이 바뀝니다.

한 행을 모두 출력한 뒤 줄바꿈하려면 Console.WriteLine()을 안쪽 반복문 밖이면서 바깥 반복문 안에 작성해야 합니다.

Q36. 삼각형처럼 줄마다 출력 개수가 달라지는 형태는 어떻게 만드나요?

A. 안쪽 반복문의 조건식에 바깥 반복문의 변수를 활용합니다.

바깥 반복문의 값이 증가할수록 안쪽 반복 횟수도 증가하도록 구성하면 줄마다 출력 개수가 달라집니다.

Q37. 중첩 반복문에서 반복 변수 이름은 어떻게 정하는 것이 좋나요?

A. 안쪽 반복문과 바깥 반복문의 변수가 겹치지 않도록 서로 다른 이름을 사용해야 합니다.

일반적으로 i, j, k를 사용하거나 반복의 의미에 따라 row, col, x, y처럼 구체적인 이름을 사용하는 것이 좋습니다.


8. 반복문을 활용한 주요 계산

Q38. 반복문으로 평균을 구하려면 어떤 과정이 필요한가요?

A. 값을 누적할 합계 변수와 개수를 저장할 변수를 준비합니다. 반복문에서 값을 더하고 개수를 증가시킨 다음, 합계를 개수로 나누어 평균을 계산합니다.

정수끼리 나누면 소수점이 잘릴 수 있으므로 소수점 결과가 필요하다면 실수형으로 형변환해야 합니다.

Q39. 반복문으로 최댓값과 최솟값을 구하려면 어떻게 하나요?

A. 최댓값과 최솟값을 저장할 변수를 준비한 뒤 값을 하나씩 비교합니다.

  • 현재 값이 최댓값보다 크면 최댓값을 갱신합니다.
  • 현재 값이 최솟값보다 작으면 최솟값을 갱신합니다.

초기값을 임의로 0으로 설정하면 모든 값이 음수인 경우처럼 잘못된 결과가 나올 수 있습니다. 따라서 자료형의 최솟값과 최댓값 등을 활용하여 적절하게 초기화해야 합니다.

Q40. 반복문으로 약수를 구하려면 어떻게 하나요?

A. 1부터 검사할 숫자까지 반복하면서 숫자를 나눈 나머지가 0인지 확인합니다. 나머지가 0이면 해당 숫자는 약수이므로 출력하거나 개수를 증가시킵니다.

Q41. 반복문으로 소수를 판정하려면 어떻게 하나요?

A. 1부터 검사할 숫자까지 반복하면서 약수의 개수를 구합니다. 1과 자기 자신만 약수로 가지는 수는 소수이므로 약수의 개수가 2개인지 확인합니다.

Q42. 피보나치 수열은 반복문으로 어떻게 구현하나요?

A. 앞의 두 숫자를 저장하는 변수를 준비하고, 두 숫자를 더해 다음 숫자를 구한 뒤 이전 값들을 갱신하는 과정을 반복합니다.

반복 횟수가 정해져 있다면 for 문을 사용할 수 있고, 특정 값 이하까지 출력하는 것처럼 종료 조건에 따라 반복해야 한다면 while 문을 사용할 수 있습니다.

Q43. 반복문으로 체력 바와 같은 상태 표시를 만들 수 있나요?

A. 가능합니다. 전체 체력만큼 반복하면서 현재 체력에 해당하는 부분은 채워진 문자로, 나머지는 비어 있는 문자로 출력하면 됩니다.

중첩 반복문을 활용하면 여러 체력 상태를 행마다 출력할 수도 있습니다.

Q44. 사용자에게 입력받은 횟수만큼 반복하려면 어떻게 하나요?

A. 사용자에게 반복 횟수를 입력받아 변수에 저장한 뒤 해당 변수를 for 문의 조건식에 활용합니다.

입력값이 0이나 음수라면 조건이 처음부터 거짓이 되어 본문은 실행되지 않습니다.


면접 전 핵심 정리

  • 반복문은 같은 코드를 조건에 따라 여러 번 실행하는 제어문입니다.
  • for 문은 반복 횟수가 정해져 있을 때 사용하며, 초기식·조건식·증감식을 한곳에 작성합니다.
  • while 문은 조건을 먼저 검사하며, 조건이 참인 동안 반복합니다. 따라서 한 번도 실행되지 않을 수 있습니다.
  • do-while 문은 본문을 먼저 실행하므로 최소 한 번은 실행합니다. 조건식 뒤에 세미콜론을 반드시 붙입니다.
  • 무한 루프는 반복 조건이 계속 참으로 유지되어 반복이 끝나지 않는 상태입니다. 조건에 사용되는 값이 적절하게 변경되는지 확인해야 합니다.
  • 중첩 반복문은 반복문 안에 반복문을 작성하는 구조입니다. 바깥 반복이 한 번 실행될 때마다 안쪽 반복이 전체 실행됩니다.
  • 중첩 반복문의 실행 횟수는 안쪽 반복 횟수가 일정하다면 바깥 횟수와 안쪽 횟수의 곱으로 계산합니다.
  • 합계와 개수를 누적하는 변수는 반복문 밖에서 선언하고, 곱셈 누적은 1부터 시작합니다.
  • 최댓값과 최솟값을 구할 때는 초기값을 적절하게 설정해야 합니다.
  • 반복문을 선택할 때는 반복 횟수가 정해져 있는지, 종료 조건을 미리 알 수 있는지, 최소 한 번 실행해야 하는지를 기준으로 판단합니다.