사전캠프 TIL

[내일배움캠프 사전캠프] + 7. 이름 찾기!

mrmuffin 2025. 3. 25. 16:04

1. 이름 입력하기

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

 

Console.WriteLine("이름을 입력해주세요. (3~10글자)");
    string input = Console.ReadLine();

    if (input.Length >= 3 && input.Length <= 10)
    {
        Console.WriteLine($"안녕하세요! 제 이름은 {input}입니다.");
    }
    else
    {
        Console.WriteLine("이름을 확인해주세요.");
    }


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

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

 

bool isSuccess;
do
{
    Console.WriteLine("이름을 입력해주세요. (3~10글자)");
    string input = Console.ReadLine();

    if (input.Length >= 3 && input.Length <= 10)
    {
        Console.WriteLine($"안녕하세요! 제 이름은 {input}입니다.");
    }
    else
    {
        Console.WriteLine("이름을 확인해주세요.");
    }

    isSuccess = input.Length >= 3 && input.Length <= 10;
}
while (!isSuccess);

 


3. 반복시 기존 내용 지우기 2번의 프로그램을 작성하면 매번 새로운 텍스트가 생기게 됩니다.

Console.Clear(); 기능을 활용하면 기존에 Console 에 표시되던 메시지를 지울 수 있습니다.

 

bool isSuccess;
do
{
    Console.Clear();
    Console.WriteLine("이름을 입력해주세요. (3~10글자)");
    string input = Console.ReadLine();

    if (input.Length >= 3 && input.Length <= 10)
    {
        Console.WriteLine($"안녕하세요! 제 이름은 {input}입니다.");
    }
    else
    {
        Console.WriteLine("이름을 확인해주세요.");
    }

    isSuccess = input.Length >= 3 && input.Length <= 10;
}
while (!isSuccess);


 이 문제에서 for문이나 while문을 사용한다면, 초기 조건 설정이 불필요하게 복잡해지거나, 코드 중복이 발생할 수 있기 때문에

do-while 문을 사용하는 것이 바람직하다. do-while문은 최소 한번은 무조건 실행한다는 특성 때문에 사용자 입력을 받는 로직에 적합하다. 또한 입력 검증과 반복 로직이 깔끔하게 분리된다는 장점이 있다.

 

 bool의 활용에 대해서 isSuccess 변수의 역할이 중요하다. isSuccess는 아래와 같은 역할을 한다.

1. 조건 결과 저장: 입력값의 길이가 3~10자인지 여부 저장
2. 루프 제어: while (!isSuccess) 로 유효한 입력이 될 때까지 반복

3. 코드 가독성 향상: 조건의 의미를 명확히 표현

 

 마지막으로 Console.Clear()은 C# 콘솔 애플리케이션에서 화면의 모든 텍스트를 지우고 커서를 맨 위로 이동시키는 메서드로, 콘솔 UI를 리셋하거나 깔끔한 화면 전환을 위해 사용된다. 

이번 예제에서 매 입력마다 화면을 깔끔하게 지우기 위해 do-while문 루프의 시작 부분에 추가하였다. 만약 else 블록 뒤에 넣는다면 "이름을 확인해주세요"라는 안내 문구가 바로 사라지기 때문에 권장하지 않는다.