연습 - do 및 while 반복 문을 구분하는 과제 활동 완료

완료됨

코드 과제는 배운 내용을 보강하고, 계속 진행하기 전에 자신감을 얻는 데 도움이 됩니다.

do 및 while 문 반복 간의 차이점 검토

앞에서 본 것처럼 C#은 for, foreach, do-while, while의 네 가지 반복 문을 지원합니다. Microsoft의 언어 참조 설명서에서는 다음과 같이 이러한 문을 설명합니다.

  • for 문: 지정된 부울 식('조건')이 true로 평가되는 동안 본문을 실행합니다.
  • foreach 문: 컬렉션의 요소를 열거하고 컬렉션의 각 요소에 대한 본문을 실행합니다.
  • do-while 문: 조건부로 본문을 한 번 이상 실행합니다.
  • while 문: 조건부로 본문을 0번 이상 실행합니다.

forforeach 반복은 명확히 서로 구분되고 do-whilewhile 반복과 구분되는 것 같습니다. 그러나 do-whilewhile 문에 대한 정의는 매우 유사한 것 같습니다. do-whilewhile 중에서 선택할 경우를 아는 것은 더 임의적인 것처럼 보이며 다소 혼란스러울 수도 있습니다. 일부 과제 프로젝트는 차이점을 명확히 하는 데 도움이 될 수 있습니다.

이 과제에서는 세 개의 개별 코딩 프로젝트에 대한 조건이 제공됩니다. 각 프로젝트에서는 do-while 또는 while 문을 사용하여 반복 코드 블록을 구현해야 합니다. do-whilewhile 문 중에서 선택하려면 지정된 조건을 평가해야 합니다. 첫 번째 선택이 예상대로 작동하지 않는 경우 시작한 후 전환할 수 있습니다.

참고

코딩 프로젝트에 대한 조건을 사용하여 do-whilewhile 문 중에서 선택할 수 있습니다. 평가될 부울 식에 대해 알고 있거나 모르는 것은 때때로 do-whilewhile 문 중에서 선택하는 데 도움이 될 수 있습니다. 이 과제 연습에서 프로젝트 조건에는 부울 식을 생성하는 데 사용할 정보가 포함됩니다.

이 챌린지 동안 사용자 입력 관리

Console.ReadLine() 문을 사용하여 사용자 입력을 가져올 때 입력 변수에 nullable 유형 문자열(string?로 지정됨)을 사용한 다음 사용자가 입력한 값을 평가하는 것이 일반적입니다. 다음 코드 샘플에서는 nullable 형식 문자열을 사용하여 사용자 입력을 캡처합니다. 사용자가 제공한 값이 null인 경우 반복이 계속됩니다.

string? readResult;
Console.WriteLine("Enter a string:");
do
{
    readResult = Console.ReadLine();
} while (readResult == null);

while 문으로 평가된 부울 표현식을 사용하여 사용자 입력이 지정된 요구 사항을 충족하는지 확인할 수 있습니다. 예를 들어 프롬프트가 사용자에게 3자 이상의 문자열을 입력하도록 요청하는 경우 다음 코드를 사용할 수 있습니다.

string? readResult;
bool validEntry = false;
Console.WriteLine("Enter a string containing at least three characters:");
do
{
    readResult = Console.ReadLine();
    if (readResult != null)
    {
        if (readResult.Length >= 3)
        {
            validEntry = true;
        }
        else
        {
            Console.WriteLine("Your input is invalid, please try again.");
        }
    }
} while (validEntry == false);

Console.ReadLine() 입력을 숫자 값으로 사용하려면 문자열 값을 숫자 유형으로 변환해야 합니다.

int.TryParse() 메서드는 문자열 값을 정수로 변환하는 데 사용할 수 있습니다. 이 메서드는 평가할 문자열과 값을 할당할 정수 변수의 이름이라는 두 개의 매개 변수를 사용합니다. 메서드는 부울 값을 반환합니다. 다음 코드 샘플은 int.TryParse() 메서드 사용을 보여줍니다.

// capture user input in a string variable named readResult

int numericValue = 0;
bool validNumber = false;

validNumber = int.TryParse(readResult, out numericValue);

readResult에 할당된 문자열 값이 유효한 정수를 나타내는 경우 값은 numericValue라는 정수 변수에 할당되고 truevalidNumber라는 부울 변수에 할당됩니다. readResult에 할당된 값이 유효한 정수를 나타내지 않으면 validNumberfalse 값이 할당됩니다. 예를 들어 readResult이 "7"과 같으면 7 값이 numericValue에 할당됩니다.

코드 프로젝트 1 - 정수 입력의 유효성을 검사하는 코드 작성

첫 번째 코딩 프로젝트에서 구현해야 하는 조건은 다음과 같습니다.

  • 이 솔루션에는 do-while 또는 while 반복이 포함되어야 합니다.

  • 반복 블록 이전: 이 솔루션은 Console.WriteLine() 문을 사용하여 사용자에게 5에서 10 사이의 정수 값을 요청하는 메시지를 표시해야 합니다.

  • 반복 블록 내부:

    • 이 솔루션은 Console.ReadLine() 문을 사용하여 사용자의 입력을 가져와야 합니다.
    • 이 솔루션은 입력이 정수의 유효한 표현인지 확인해야 합니다.
    • 정수 값이 5에서 10 사이가 아닌 경우 이 코드는 Console.WriteLine() 문을 사용하여 사용자에게 5에서 10 사이의 정수 값을 요청하는 메시지를 표시해야 합니다.
    • 이 솔루션은 반복을 종료하기 전에 정수 값이 5에서 10 사이인지 확인해야 합니다.
  • 반복 코드 블록 아래(이후): 이 솔루션은 Console.WriteLine() 문을 사용하여 입력 값이 수락되었음을 사용자에게 알려야 합니다.

  1. Visual Studio Code에서 빈 Program.cs 파일이 열려 있는지 확인합니다.

    필요한 경우 Visual Studio Code를 열고 다음 단계를 완료하여 편집기에서 Program.cs 파일을 준비합니다.

    1. 파일 메뉴에서 폴더 열기를 선택합니다.

    2. 폴더 열기 대화 상자를 사용하여 CsharpProjects 폴더로 이동한 다음 엽니다.

    3. Visual Studio Code EXPLORER 패널에서 Program.cs 선택합니다.

    4. Visual Studio Code 선택 메뉴에서 [모두 선택]을 선택하고 [삭제] 키를 누릅니다.

  2. 코드 프로젝트 1에 대한 각 조건을 구현하는 코드를 작성합니다.

  3. 애플리케이션을 실행하고 코드가 지정된 요구 사항에 따라 사용자 입력의 유효성을 검사하는지 확인합니다.

    예를 들어 애플리케이션을 실행하면 애플리케이션은 “two” 및 “2”와 같은 입력 값을 거부해야 하지만 입력 값 “7”을 수락해야 합니다.

    위에서 설명한 예제에서 콘솔 출력은 다음과 유사합니다.

    Enter an integer value between 5 and 10
    two
    Sorry, you entered an invalid number, please try again
    2
    You entered 2. Please enter a number between 5 and 10.
    7
    Your input value (7) has been accepted.
    

코드 프로젝트 2 - 문자열 입력의 유효성을 검사하는 코드 작성

두 번째 코딩 프로젝트에서 구현해야 하는 조건은 다음과 같습니다.

  • 이 솔루션에는 do-while 또는 while 반복이 포함되어야 합니다.

  • 반복 블록 이전: 이 솔루션은 Console.WriteLine() 문을 사용하여 사용자에게 관리자(Administrator), 관리자(Manager) 또는 사용자라는 세 가지 역할 이름 중 하나를 요청하는 메시지를 표시해야 합니다.

  • 반복 블록 내부:

    • 이 솔루션은 Console.ReadLine() 문을 사용하여 사용자의 입력을 가져와야 합니다.
    • 이 솔루션은 입력한 값이 세 가지 역할 옵션 중 하나와 일치하는지 확인해야 합니다.
    • 이 솔루션은 입력 값에서 Trim() 메서드를 사용하여 선행 및 후행 공백 문자를 무시해야 합니다.
    • 이 솔루션은 입력 값에서 ToLower() 메서드를 사용하여 대/소문자를 무시해야 합니다.
    • 입력한 값이 역할 옵션 중 하나와 일치하지 않는 경우 이 코드는 Console.WriteLine() 문을 사용하여 사용자에게 유효한 입력을 요청하는 메시지를 표시해야 합니다.
  • 반복 코드 블록 아래(이후): 이 솔루션은 Console.WriteLine() 문을 사용하여 입력 값이 수락되었음을 사용자에게 알려야 합니다.

  1. Visual Studio Code 편집기 패널에서 모든 코드를 주석으로 처리

    1. 코드 편집기에서 모든 코드 줄 선택
    2. 편집 메뉴에서 블록 주석 설정/해제를 선택합니다.
  2. 코드 프로젝트 2에 대한 각 조건을 구현하는 코드를 작성합니다.

  3. 애플리케이션을 실행하고 코드가 지정된 요구 사항에 따라 사용자 입력의 유효성을 검사하는지 확인합니다.

    예를 들어 애플리케이션을 실행하면 애플리케이션은 “Admin”과 같은 입력 값을 거부해야 하지만 입력 값 “administrator”를 수락해야 합니다.

    이 예제의 콘솔 출력은 다음과 유사합니다.

    Enter your role name (Administrator, Manager, or User)
    Admin
    The role name that you entered, "Admin" is not valid. Enter your role name (Administrator, Manager, or User)
       Administrator
    Your input value (Administrator) has been accepted.
    

코드 프로젝트 3 - 문자열 배열의 내용을 처리하는 코드 작성

세 번째 코딩 프로젝트에서 구현해야 하는 조건은 다음과 같습니다.

  • 이 솔루션은 다음 문자열 배열을 사용하여 코딩 논리에 대한 입력을 나타내야 합니다.

    string[] myStrings = new string[2] { "I like pizza. I like roast chicken. I like salad", "I like all three of the menu choices" };
    
  • 이 솔루션은 문자열 내에서 마침표 문자의 위치를 저장하는 데 사용할 수 있는 periodLocation이라는 정수 변수를 선언해야 합니다.

  • 이 솔루션에는 배열의 각 문자열 요소를 처리하는 데 사용할 수 있는 외부 foreach 또는 for 루프가 포함되어야 합니다. 루프 내에서 처리할 문자열 변수의 이름은 myString이어야 합니다.

  • 외부 루프에서 이 솔루션은 IndexOf() 클래스의 String 메서드를 사용하여 myString 변수에서 첫 번째 마침표 문자의 위치를 가져와야 합니다. 메서드 호출은 myString.IndexOf(".")와 유사합니다. 문자열에 마침표 문자가 없으면 -1 값이 반환됩니다.

  • 이 솔루션에는 do-while 변수를 처리하는 데 사용할 수 있는 내부 while 또는 myString 루프가 포함되어야 합니다.

  • 내부 루프에서 이 솔루션은 처리되는 각 문자열에 포함된 각 문장을 추출하고 표시(콘솔에 쓰기)해야 합니다.

  • 내부 루프에서 이 솔루션은 마침표 문자를 표시해서는 안 됩니다.

  • 내부 루프에서 이 솔루션은 Remove(), Substring()TrimStart() 메서드를 사용하여 문자열 정보를 처리해야 합니다.

  1. Visual Studio Code 편집기 패널에서 모든 코드를 주석으로 처리

    1. 코드 편집기에서 모든 코드 줄 선택
    2. 편집 메뉴에서 블록 주석 설정/해제를 선택합니다.
  2. 코드 프로젝트 3에 나열된 각 조건을 구현하는 코드를 작성합니다.

  3. 애플리케이션을 실행하고 출력이 요구 사항을 충족하는지 확인합니다.

    코드 논리가 올바르게 작동하는 경우 출력은 다음과 유사합니다.

    I like pizza
    I like roast chicken
    I like salad
    I like all three of the menu choices
    

진행이 막혀서 솔루션을 참고할 필요가 있거나 성공적으로 완료했다면 계속 진행하여 이 과제에 대한 솔루션 프로젝트를 확인하세요.