C# 조건문 정리 면접 질문 및 답변

공재원
∙∙조회 8

C# 조건문

1. 제어문과 조건문

Q1. 제어문이란 무엇인가요?

A. 프로그램의 실행 순서를 제어하는 문장을 의미합니다. 크게 순차, 조건, 반복 세 가지로 나뉩니다.

  • 순차: 코드를 작성한 순서대로 실행합니다.
  • 조건: 조건에 따라 실행할 코드를 결정합니다.
  • 반복: 같은 코드를 여러 번 실행합니다.

Q2. 조건문이란 무엇인가요?

A. 조건의 참과 거짓 또는 특정 값에 따라 실행할 코드를 결정하는 문장입니다. C#에서는 if 계열과 switch를 사용합니다.

Q3. 조건문이 없으면 코드는 어떻게 실행되나요?

A. 위에서 아래로 작성된 순서에 따라 모든 코드가 실행됩니다. 이를 순차 실행이라고 합니다.


2. if 문

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

A. 조건식이 참일 때만 중괄호 안의 코드를 실행하는 조건문입니다.

Q5. if 문의 조건식에는 어떤 값이 들어가야 하나요?

A. 반드시 bool 값이 들어가야 합니다. 숫자를 직접 조건으로 사용할 수 없으며, 비교 연산의 결과나 bool 변수를 사용합니다.

Q6. bool 변수는 if 문에서 어떻게 사용하나요?

A. bool 변수 자체를 조건으로 사용할 수 있습니다. 이미 참과 거짓을 저장하므로 == true를 추가할 필요가 없습니다.

Q7. if 문을 여러 개 사용하면 어떻게 되나요?

A. 각각의 조건을 독립적으로 검사합니다. 따라서 여러 조건이 동시에 참이라면 해당하는 모든 코드가 실행됩니다.

Q8. if 문의 중괄호를 생략해도 되나요?

A. 실행할 문장이 하나라면 문법적으로 생략할 수 있습니다. 하지만 실수를 방지하기 위해 항상 중괄호를 사용하는 것이 좋습니다.

  • 중괄호를 생략하면 바로 다음 한 줄만 조건에 포함됩니다.
  • 들여쓰기가 되어 있어도 실제 실행 범위가 달라질 수 있습니다.

Q9. if 문 뒤에 세미콜론을 붙이면 어떻게 되나요?

A. if (조건);처럼 세미콜론을 붙이면 조건이 참이어도 실행할 코드가 없는 상태가 됩니다. 뒤에 작성한 중괄호는 조건문과 분리되어 항상 실행됩니다.

Q10. = 와 == 의 차이는 무엇인가요?

A.

  • =: 변수에 값을 대입합니다.
  • ==: 두 값이 같은지 비교합니다.

bool 변수에 =를 사용하면 컴파일 오류 없이 변수의 값이 변경될 수 있으므로 주의해야 합니다.


3. else 문

Q11. else 문이란 무엇인가요?

A. 앞의 if 조건이 거짓일 때 실행할 코드를 지정하는 문장입니다. 별도의 조건을 작성하지 않으며, if와 else 중 하나만 실행됩니다.

Q12. if 두 개와 if-else의 차이는 무엇인가요?

A.

  • if 두 개: 각각의 조건을 독립적으로 검사합니다.
  • if-else: 첫 번째 조건을 검사하고 참과 거짓 중 하나만 실행합니다.

서로 반대되는 조건이라면 if-else를 사용하는 것이 효율적입니다.

Q13. 짝수와 홀수는 어떻게 판별하나요?

A. 정수를 2로 나눈 나머지를 확인합니다.

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

음수는 나머지가 -1이 될 수 있으므로 % 2 == 1 대신 % 2 != 0으로 판별하는 것이 안전합니다.

Q14. TryParse와 조건문은 어떻게 함께 사용하나요?

A. TryParse가 반환하는 bool 값을 조건으로 사용하여 변환 성공과 실패를 구분합니다. 변환 실패 시 반환되는 기본값을 정상적인 입력값과 혼동하지 않도록 반환값으로 분기해야 합니다.


4. else if 문

Q15. else if 문이란 무엇인가요?

A. 세 가지 이상의 조건으로 실행 흐름을 나눌 때 사용하는 문장입니다. 위에서부터 조건을 차례로 검사하고 처음 참이 된 코드 하나만 실행합니다.

Q16. else if 문의 조건 순서가 중요한 이유는 무엇인가요?

A. 앞의 조건이 참이면 뒤의 조건은 검사하지 않기 때문입니다. 따라서 범위가 좁고 구체적인 조건을 먼저 배치해야 합니다.

Q17. else if에서 앞 조건이 검사한 범위를 다시 작성해야 하나요?

A. 다시 작성할 필요가 없습니다. 앞 조건이 거짓이라는 사실이 이미 확정되었으므로 남은 범위만 검사하면 됩니다.

Q18. 여러 조건이 동시에 참일 때 모든 결과를 실행하려면 어떻게 해야 하나요?

A. else if로 연결하지 않고 각각 독립적인 if 문으로 작성해야 합니다. else if는 처음 참이 된 조건 하나만 실행하기 때문입니다.

Q19. 마지막 else는 반드시 작성해야 하나요?

A. 반드시 작성할 필요는 없습니다. 모든 조건이 거짓일 때 아무것도 실행하지 않아도 된다면 생략할 수 있습니다. 반드시 하나의 결과가 실행되어야 한다면 else를 작성합니다.


5. 중첩 if 문

Q20. 중첩 if 문이란 무엇인가요?

A. if 문 내부에 또 다른 if 문을 작성하는 방식입니다. 앞의 조건이 참일 때만 다음 조건을 검사해야 하는 경우에 사용합니다.

Q21. 중첩 if 대신 &&를 사용해도 되나요?

A. 모든 조건이 참일 때만 실행하고 실패 이유를 구분하지 않아도 된다면 &&로 조건을 묶을 수 있습니다.

Q22. 중첩 if와 &&는 어떤 기준으로 선택하나요?

A.

  • 모든 조건이 참일 때만 실행하면 &&를 사용합니다.
  • 조건마다 실패했을 때 다른 처리가 필요하면 중첩 if를 사용합니다.
  • 조건이 많아 들여쓰기가 깊어지면 bool 변수로 조건을 분리하거나 실패 조건을 먼저 검사합니다.

6. switch 문

Q23. switch 문이란 무엇인가요?

A. 하나의 값이 무엇인지에 따라 실행할 코드를 구분하는 조건문입니다. 하나의 변수를 여러 값과 비교할 때 유용합니다.

Q24. switch 문의 주요 구성 요소는 무엇인가요?

A.

  • switch: 비교할 값을 지정합니다.
  • case: 비교할 값을 지정하고 해당 값과 일치하면 실행합니다.
  • break: 현재 switch 문을 종료합니다.
  • default: 어떤 case에도 해당하지 않을 때 실행합니다.

Q25. case 뒤에 변수를 사용할 수 있나요?

A. 사용할 수 없습니다. case 뒤에는 컴파일 시점에 값이 정해지는 상수를 사용해야 합니다.

Q26. default는 반드시 작성해야 하나요?

A. 반드시 작성할 필요는 없습니다. 생략하면 일치하는 case가 없을 때 아무 코드도 실행하지 않습니다. 예상하지 못한 입력을 처리하려면 default를 작성하는 것이 좋습니다.

Q27. switch 문에서 break를 생략하면 어떻게 되나요?

A. 실행 코드가 있는 case에서 break 등을 생략하면 컴파일 오류가 발생합니다. C나 C++처럼 다음 case로 자동으로 넘어가는 방식은 허용하지 않습니다.

Q28. 여러 case를 하나로 묶을 수 있나요?

A. 가능합니다. 실행할 코드가 없는 case를 연속해서 작성하면 여러 값이 같은 코드를 공유합니다.

Q29. switch 문에서 사용할 수 있는 자료형은 무엇인가요?

A. 정수형, char, string, bool 등을 사용할 수 있습니다. 실수형도 문법적으로 가능하지만 부동소수점 오차로 인해 예상한 값과 일치하지 않을 수 있으므로 사용하지 않는 것이 좋습니다.

Q30. switch 문에서 문자열을 비교할 때 주의할 점은 무엇인가요?

A. 문자열의 대소문자를 구분합니다. 따라서 "attack"과 "ATTACK"은 서로 다른 값으로 처리합니다.

Q31. switch 문으로 범위 조건을 검사할 수 있나요?

A. 여기서 학습한 상수 case 방식으로는 범위 조건을 표현할 수 없습니다. 점수가 특정 값 이상인지 검사하는 것처럼 범위를 비교하려면 if와 else if를 사용합니다.


7. switch 식

Q32. switch 식이란 무엇인가요?

A. 조건에 따라 실행할 코드가 아니라 결과로 반환할 값을 선택하는 식입니다. 선택한 값을 변수에 바로 저장할 수 있습니다.

Q33. switch 문과 switch 식의 차이는 무엇인가요?

A.

  • switch 문: 조건에 따라 여러 문장을 실행합니다.
  • switch 식: 조건에 따라 하나의 값을 선택합니다.

Q34. switch 식에서 사용하는 주요 문법은 무엇인가요?

A.

  • =>: 조건에 해당하는 결과값을 지정합니다.
  • ,: 각 조건과 결과를 구분합니다.
  • _: 나머지 모든 경우를 처리합니다.

Q35. switch 식에서 _는 어떤 역할을 하나요?

A. switch 문의 default와 같은 역할을 합니다. 앞의 조건에 해당하지 않는 모든 값을 처리합니다.

Q36. switch 식에서 _를 사용하는 이유는 무엇인가요?

A. switch 식은 반드시 하나의 결과값을 만들어야 하기 때문입니다. _를 작성하면 예상하지 못한 값이 들어와도 기본 결과를 반환할 수 있습니다.

Q37. switch 식의 각 결과값에는 어떤 규칙이 있나요?

A. 모든 분기의 결과값은 같은 자료형이거나 서로 변환할 수 있는 자료형이어야 합니다.

Q38. switch 식에서 여러 case를 묶을 수 있나요?

A. 여기서 학습한 기본 switch 식에서는 각 값마다 결과를 작성합니다. 여러 값을 하나로 묶는 별도의 문법은 이번 학습 범위에서 다루지 않습니다.


8. if 문과 switch 문의 차이

Q39. if와 switch의 가장 큰 차이는 무엇인가요?

A.

  • if: 조건식의 참과 거짓을 기준으로 실행을 구분합니다.
  • switch: 하나의 값이 무엇인지에 따라 실행을 구분합니다.

Q40. 어떤 상황에서 if를 사용하는 것이 좋나요?

A.

  • 특정 값 이상의 범위를 검사할 때 사용합니다.
  • 여러 변수를 조합하여 조건을 검사할 때 사용합니다.
  • 복잡한 논리 조건을 검사할 때 사용합니다.

Q41. 어떤 상황에서 switch를 사용하는 것이 좋나요?

A.

  • 하나의 변수를 여러 상수와 비교할 때 사용합니다.
  • 선택지가 많고 각 선택지에 따라 다른 처리를 해야 할 때 사용합니다.
  • 값에 따라 결과를 간단하게 선택할 때 switch 식을 사용합니다.

Q42. if와 switch를 하나의 프로그램에서 함께 사용할 수 있나요?

A. 가능합니다. 명령을 구분할 때는 switch를 사용하고, 해당 명령을 실행하기 위한 추가 조건은 if로 검사하는 방식처럼 각 문법의 장점을 함께 활용합니다.


9. 조건문 활용과 주의사항

Q43. 조건문을 작성할 때 가장 중요한 것은 무엇인가요?

A. 조건을 검사하는 순서와 각 조건의 범위를 정확하게 설정하는 것입니다. 특히 else if는 처음 참이 된 조건만 실행하므로 순서에 주의해야 합니다.

Q44. 입력값을 검사할 때 어떤 순서로 처리해야 하나요?

A. 먼저 입력값을 정상적으로 변환할 수 있는지 검사하고, 변환에 성공한 경우에만 값의 범위나 조건을 검사해야 합니다.

Q45. 조건이 복잡해지면 어떻게 정리하는 것이 좋나요?

A. 조건을 의미 있는 bool 변수로 분리하거나 &&를 활용합니다. 실패 이유에 따라 다른 처리가 필요하다면 중첩 if 또는 else if를 사용합니다.

Q46. 조건문을 사용할 때 자주 발생하는 실수는 무엇인가요?

A.

  • =와 ==를 혼동합니다.
  • if 뒤에 불필요한 세미콜론을 작성합니다.
  • 중괄호를 생략해 실행 범위를 잘못 이해합니다.
  • else if의 조건 순서를 잘못 배치합니다.
  • 동시에 참이 될 수 있는 조건을 else if로 연결합니다.
  • 문자열의 대소문자 차이를 고려하지 않습니다.
  • 실수형 값을 switch로 정확하게 비교하려고 합니다.

면접 전 핵심 정리

  • 제어문은 순차, 조건, 반복으로 구분하며 조건문은 실행 흐름을 분기합니다.
  • if 문은 조건식이 참일 때만 실행하며 조건식은 반드시 bool이어야 합니다.
  • bool 변수는 == true 없이 조건으로 직접 사용할 수 있습니다.
  • if 문에는 중괄호를 사용하는 것이 안전하며 불필요한 세미콜론을 붙이지 않아야 합니다.
  • else는 if 조건이 거짓일 때 실행하며 else if는 위에서부터 검사해 처음 참이 된 하나만 실행합니다.
  • 여러 조건을 모두 검사하려면 독립적인 if 문을 사용해야 합니다.
  • 중첩 if는 앞 조건이 참일 때만 다음 조건을 검사하며, 모든 조건이 참일 때만 실행한다면 &&로 묶을 수 있습니다.
  • switch 문은 하나의 값을 여러 상수와 비교하며 case, break, default를 사용합니다.
  • switch 문의 case에는 변수가 아닌 상수를 사용하며 실행 코드가 있는 case는 break 등으로 종료해야 합니다.
  • switch 식은 조건에 따라 값을 선택하며 _로 나머지 경우를 처리합니다.
  • 범위 조건과 여러 변수를 조합한 조건에는 if를 사용하고, 하나의 값을 여러 상수와 비교할 때는 switch를 사용하는 것이 적합합니다.
  • 실제 프로그램에서는 if, else if, 중첩 if, switch를 필요한 상황에 맞게 함께 사용할 수 있습니다.