Notice
Recent Posts
Recent Comments
Link
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Archives
Today
Total
관리 메뉴

개발 달리기

C# 기초 - 이름 찾기 본문

C#

C# 기초 - 이름 찾기

옹즤 2025. 4. 1. 18:11
  • 문제 1. 이름 입력하기

이름을 입력하여 3글자 이상 10글자 이하의 이름을 입력할 수 있는 프로그램을 작성합니다.
최초 메시지 출력 - “이름을 입력해주세요. (3~10글자)”
이름이 3글자 미만, 10글자 초과라면 - “이름을 확인해주세요.”
올바르게 입력했다면  - “안녕하세요! 제 이름은 xxx 입니다.”
문자열의 .Length 기능을 이용하면 현재 문자열이 몇글자인지 알 수 있습니다.
string myStr = "test";
int length = myStr.Length;
결과 : length - 4

 

코드 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Console.WriteLine("이름을 입력해주세요. (3 ~ 10 글자)");
 
string myStr = Console.ReadLine();
int length = myStr.Length; // 입력된 문자가 몇글자인지 검사
 
 
if (length > 2 && length < 11// 2글자 초과 11글자 미만
{
    Console.WriteLine("안녕하세요! 제 이름은 " + myStr + "입니다.");
}
else
{
    Console.WriteLine("이름을 확인해주세요.");
}
 
cs

문제 1번의 코드 작성은 어렵지 않았다.

Length 기능도 배열 제작에서 한번 사용해본 적 있는 기능이라 바로 이해가 되었다.

 

  • 문제 2. 조건에 맞을때 까지 이름 입력

1번의 프로그램을 작성하면 3~10글자의 이름을 입력하지 않았을때 이름을 확인해주세요. 메시지 이후 프로그램이 종료됩니다.
이름을 올바르게 입력할때까지 실행되도록 적용해보세요.
반복문과 bool 을 이용하여 만들 수 있습니다.

 

  • 문제 3. 반복시 기존 내용 지우기

2번의 프로그램을 작성하면 매번 새로운 텍스트가 생기게 됩니다.
Console.Clear(); 기능을 활용하면 기존에 Console 에 표시되던 메시지를 지울 수 있습니다.

 

코드 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Console.WriteLine("이름을 입력해주세요. (3 ~ 10 글자)");
 
string myStr = Console.ReadLine();
int length = myStr.Length; // 입력된 문자가 몇글자인지 검사
bool isCor = true;
 
if (length > 2 && length < 11// 2글자 초과 11글자 미만
{
    Console.WriteLine("안녕하세요! 제 이름은 " + myStr + "입니다.");
    isCor = true;
}
else
{
    Console.WriteLine("이름을 확인해주세요.");
    isCor = false;
}
 
while (isCor == false// 제대로 입력 안될 시 반복문으로 입장
{
    Console.Clear(); // 쌓인 내용 지우기
    Console.WriteLine("이름을 확인해주세요.");
    myStr = Console.ReadLine();
    length = myStr.Length;
 
    if (length > 2 && length < 11)
    {
        Console.WriteLine("안녕하세요! 제 이름은 " + myStr + "입니다.");
        isCor = true;
    }
    else
    {
        isCor = false;
    }
}
cs

힌트로 반복문과 bool 값을 이용하여 만들 수 있다고 하여 bool값을 하나 만들어 주고

통과를 했는가 못했는가로 while문을 타게 만들었다.

그런데 초반에는 제대로 작동을 하지 않았던 부분 중 다행히 해결된 부분이 있었다.

while문을 타는 것 까진 좋았는데 반복문을 탄 이후에 올바로 입력을 해도 끝나지 않고 계속 반복되는 것이 문제였다.

원인은 23번째 줄에 length를 재선언 하지 않아, 반복문 안에서는 길이 검사를 하지 않아서였다.

이후 다음과 같이 코드를 짜서 모두 정상 작동하였다.

 

정답지의 코드는 훨씬 간단했다.
이번에는 정답지의 코드를 보고 do, while문에 대한 이해가 많이 부족했다고 느꼈다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool isSuccess;
 
do
{
    Console.WriteLine("이름을 입력해주세요. (3~10글자)");
    string input = Console.ReadLine();
    
        Console.Clear();
 
    if (input.Length >= 3 && input.Length <= 10)
    {
        Console.WriteLine("안녕하세요! 제 이름은 "+ input +" 입니다.");
    }
    else
    {
        Console.WriteLine("이름을 확인해주세요.");
    }
 
    isSuccess = input.Length >= 3 && input.Length <= 10;
while (!isSuccess);
cs

 

 

챗 GPT의 경우는 bool값 선언 없는 코드를 제시했다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Console.WriteLine("이름을 입력해주세요. (3 ~ 10 글자)");
 
string myStr = Console.ReadLine();
int length = myStr.Length; // 입력된 문자가 몇 글자인지 검사
 
while (length < 3 || length > 10// 조건이 맞지 않으면 반복
{
    Console.WriteLine("이름을 확인해주세요. (3 ~ 10 글자)");
 
    myStr = Console.ReadLine(); // 새로 입력받기
    length = myStr.Length; // 새 입력의 길이 다시 검사
}
 
Console.WriteLine("안녕하세요! 제 이름은 " + myStr + "입니다.");
cs

 

하나의 문제가 같은 결과값을 가지지만 각기 다른 3가지의 방식으로 표현되는 것을 보니

앞으로 얼마나 험난한 길이 이어질지 다소 느껴지는 부분이다.

'C#' 카테고리의 다른 글

C# 예제 - 홀수 출력  (0) 2025.04.08
C# 초급  (0) 2025.04.04
C# 기초 - 여행을 떠나요  (0) 2025.04.01
C# 기초 - 대한민국의 수도는?  (0) 2025.04.01
C# 기초 - 숫자..인가요?  (0) 2025.04.01