C# 사용자 입력과 형 변환 면접 질문 및 답변
C# 사용자 입력과 형 변환
1. 사용자 입력 기초
Q1. Console.ReadLine()은 어떤 역할을 하나요?
A. 사용자가 Enter를 누를 때까지 입력한 한 줄을 문자열(string)로 읽어옵니다.
Q2. Console.ReadLine()으로 입력받은 숫자는 바로 계산할 수 있나요?
A. 입력 결과는 문자열이므로 숫자처럼 보여도 바로 숫자 계산에 사용할 수 없습니다. 숫자로 계산하려면 적절한 변환이 필요합니다.
Q3. Console.Write()와 Console.WriteLine()의 차이는 무엇인가요?
A. Console.Write()는 출력 후 줄을 바꾸지 않고, Console.WriteLine()은 출력 후 줄을 바꿉니다.
2. 변환 방법과 실패
Q1. Convert 클래스는 어떤 역할을 하나요?
A. 값을 다른 타입으로 변환하는 기능을 제공합니다. 메서드 이름에 변환할 타입이 표시되어 있습니다.
Q2. Parse와 Convert의 차이는 무엇인가요?
A. Parse는 문자열만 받아 변환하지만, Convert는 거의 모든 타입의 값을 받아 변환할 수 있습니다. 값이 없을 때 Convert.ToInt32(null)은 0을 반환하지만, int.Parse(null)은 오류가 발생합니다.
Q3. 실수 값을 정수로 변환할 때 Convert와 캐스트는 어떤 차이가 있나요?
A. (int)3.7과 같은 캐스트는 소수 부분을 버려 3을 반환합니다. 반면 Convert.ToInt32(3.7)은 가장 가까운 정수로 반올림하여 4를 반환합니다. 정확히 중간인 값은 짝수 쪽을 선택합니다.
Q4. Parse를 사용할 때 주의할 점은 무엇인가요?
A. 변환할 수 없는 문자열을 입력하면 FormatException이 발생하고 프로그램이 멈춥니다. 빈 입력이나 정수 범위를 벗어난 값도 변환할 수 없습니다.
Q5. TryParse는 어떤 역할을 하나요?
A. 변환을 시도한 뒤 성공 여부를 bool로 반환합니다. 변환에 실패해도 프로그램이 멈추지 않습니다.
Q6. TryParse가 성공하거나 실패하면 어떤 결과가 나오나요?
A. 성공하면 true를 반환하고 변환된 값을 결과 변수에 담습니다. 실패하면 false를 반환하고 결과 변수에는 0이 담깁니다.
Q7. TryParse에서 out은 어떤 역할을 하나요?
A. 변환 결과를 받아 올 변수를 지정하는 표시입니다. 성공했을 때 변환된 값이 해당 변수에 저장됩니다.
Q8. 사용자 입력에는 어떤 변환 방법을 사용하는 것이 좋나요?
A. 사용자 입력은 예상하지 못한 값이 들어올 수 있으므로, 변환 실패에도 프로그램이 멈추지 않는 TryParse를 기본으로 사용합니다.
3. 한 글자 입력과 한 줄 입력
Q1. Console.Read()는 어떤 역할을 하나요?
A. 입력에서 한 글자를 읽고 해당 문자의 코드 값을 정수(int)로 반환합니다. 문자로 사용하려면 char로 변환해야 합니다.
Q2. Console.Read()를 실제 입력에 자주 사용하지 않는 이유는 무엇인가요?
A. 문자를 얻기 위해 별도의 형 변환이 필요하고, 입력 후 남은 Enter 키가 다음 입력에 섞여 들어오는 문제가 있기 때문입니다.
Q3. Console.ReadLine()과 Console.Read()의 차이는 무엇인가요?
A. Console.ReadLine()은 Enter까지 한 줄을 읽어 문자열로 반환합니다. Console.Read()는 한 글자를 읽어 해당 문자의 코드 값을 정수로 반환합니다.
4. 실제 타입 확인
Q1. GetType()은 어떤 역할을 하나요?
A. 값이나 변수의 실제 타입을 확인하는 메서드입니다. 타입 이름은 System.Int32, System.String처럼 .NET 타입 이름으로 표시됩니다.
Q2. 화면에 표시되는 값만으로 실제 타입을 알 수 있나요?
A. 알 수 없습니다. 문자열 "123"과 정수 123은 화면에 비슷하게 표시되지만 실제 타입은 다릅니다. GetType()을 사용하면 타입을 확인할 수 있습니다.
Q3. 형 변환 전후의 타입을 확인하는 이유는 무엇인가요?
A. 값의 모양이 같더라도 실제 타입은 달라질 수 있으므로, 변환이 제대로 이루어졌는지 확인하는 데 도움이 됩니다.
5. 입력값 점검과 변환 결과
Q1. 하나의 문자열을 여러 타입으로 변환할 수 있나요?
A. 가능합니다. 같은 문자열이라도 타입마다 변환 가능 여부가 다릅니다. 예를 들어 "42"는 int와 double로 변환할 수 있지만 bool로는 변환할 수 없습니다.
Q2. TryParse의 성공 여부와 결과값을 함께 확인해야 하는 이유는 무엇인가요?
A. 변환에 실패했을 때 결과값이 0이 되기 때문입니다. 실제 입력값이 0이라서 성공한 것인지, 변환에 실패해서 0이 된 것인지 구분하려면 성공 여부도 함께 확인해야 합니다.
면접 전 핵심 정리
Console.ReadLine()은 한 줄을 문자열로 입력받습니다.Console.Read()는 한 글자의 코드 값을 정수로 반환합니다.- 문자열을 숫자로 변환할 때는
Parse,Convert,TryParse를 사용합니다. Parse는 문자열만 받아 변환하며, 실패하면 예외가 발생합니다.Convert는 거의 모든 타입을 받아 변환하며,null을 정수로 변환하면 0을 반환합니다.Convert는 실수를 정수로 변환할 때 반올림하고, 캐스트는 소수 부분을 버립니다.TryParse는 변환 성공 여부를bool로 반환하며, 실패해도 프로그램이 멈추지 않습니다.out은 변환 결과를 저장할 변수를 지정합니다.- 사용자 입력에는
TryParse를 기본으로 사용합니다. GetType()으로 실제 타입을 확인할 수 있습니다.



