연습 - if 문에서 코드 블록 제거

완료됨

소프트웨어 개발자는 가독성을 희생하지 않고 키 입력 및 시각적 공간을 저장하는 코드를 작성할 수 있을 때 이를 좋아합니다. 코드를 더 읽고 이해할 수 있게 만드는 경우 개발 프로세스에서 "less is more"라는 문구만 적용합니다.

코드 블록에 한 줄의 코드만 필요한 경우 중괄호를 사용하여 공식 코드 블록을 정의할 필요가 없습니다. 기술적으로 코드를 여러 줄로 구분할 필요는 없지만 문을 한 줄로 결합하면 코드를 읽기 어려울 수 있습니다.

위에서 설명한 대로 중괄호를 제거하는 것은 코드의 기능에 영향을 주지 않아야 하는 스타일 변경입니다. 그러나 변경 내용이 코드를 읽을 수 있는 정도에 부정적인 영향을 주지 않도록 하는 단계를 수행해야 합니다. 중괄호와 공백을 제거하면 미치는 영향을 평가한 다음 변경 내용으로 인해 코드를 읽을 수 없게 된 경우 원래 코드로 되돌릴 수 있습니다.

코드 블록을 사용하는 if 문의 예제 만들기

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

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

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

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

    3. Visual Studio Code 탐색기 패널에서 Program.cs를 선택합니다.

    4. Visual Studio Code 선택 메뉴에서 모두 선택을 선택한 다음 Delete 키를 누릅니다.

  2. Visual Studio Code 편집기에 다음 코드를 입력합니다.

    bool flag = true;
    if (flag)
    {
        Console.WriteLine(flag);
    }
    
  3. 코드 파일을 저장한 다음 Visual Studio Code를 사용하여 코드를 실행합니다.

    터미널 명령 프롬프트에서 dotnet run을 입력하여 코드를 실행합니다.

  4. 다음 출력이 표시되는지 확인합니다.

    True
    

    코드는 좋은 시작점을 나타내지만 한 줄의 코드가 포함된 코드 블록이 있습니다. 이 경우 코드 블록을 정의해야 합니까?

중괄호 제거

flagtrue일 때 위의 코드는 코드 블록을 실행합니다. 이 코드 블록에는 단일 코드 줄이 포함되어 있으므로 중괄호를 제거하는 옵션이 있습니다.

  1. 다음과 같이 Visual Studio Code 편집기에서 코드를 업데이트합니다.

    bool flag = true;
    if (flag)
        Console.WriteLine(flag);
    

    비고

    중괄호를 제거한다고 해서 if 문의 코드 블록이 Console.WriteLine(flag);라는 사실이 변경되지는 않습니다.

  2. 코드 파일을 저장한 다음 Visual Studio Code를 사용하여 코드를 실행합니다.

  3. 출력은 이전과 동일합니다.

    다음 출력이 계속해서 표시되어야 합니다.

    True
    

    그러나 두 줄의 코드가 더 적습니다. 가장 중요한 것은 if 아래의 코드 줄이 들여쓰기 되어 코드를 쉽게 읽을 수 있다는 것입니다.

단일 행 if 문 구문의 가독성을 검사합니다.

이 단계에서는 코드 가독성이 부정적인 영향을 받을 수 있는 경우를 살펴보겠습니다.

if 문과 Console.WriteLine()에 대한 메서드 호출이 모두 짧기 때문에 한 줄로 결합하도록 시도할 수 있습니다. 결국 문에 대한 if C# 구문을 사용하면 이러한 방식으로 문을 결합할 수 있습니다.

  1. 다음과 같이 Visual Studio Code 편집기에서 코드를 업데이트합니다.

    bool flag = true;
    if (flag) Console.WriteLine(flag);
    
  2. 코드 파일을 저장한 다음 Visual Studio Code를 사용하여 코드를 실행합니다.

  3. 출력은 여전히 동일합니다.

  4. 코드 가독성을 고려하려면 잠시 시간을 내세요.

    코드의 더 큰 섹션 내에 중첩된 이전 두 코드 샘플을 상상해 보십시오. 4단계에서 수행한 것처럼 코드 문을 결합하면 읽기가 더 어려워질 수 있습니다.

    Microsoft는 단일 문 코드 블록을 포함하는 if 문을 구현할 때 다음 규칙을 고려할 것을 권장합니다.

    • 한 줄 형식을 사용하지 마세요(예: if (flag) Console.WriteLine(flag);
    • 중괄호 사용은 항상 허용되며 if/else if/.../else 복합 문의 블록이 중괄호를 사용하거나 단일 문 본문이 여러 줄에 걸쳐 있는 경우 필요합니다.
    • if/else if/.../else 복합 문과 연결된 모든 블록의 본문이 한 줄에 배치된 경우에만 중괄호를 생략할 수 있습니다.
  5. 더 큰 if-elseif-else 구문에 대한 가독성 영향을 검사하려면 다음과 같이 코드를 업데이트합니다.

    string name = "steve";
    if (name == "bob") Console.WriteLine("Found Bob");
    else if (name == "steve") Console.WriteLine("Found Steve");
    else Console.WriteLine("Found Chuck");
    
  6. 코드 파일을 저장한 다음 Visual Studio Code를 사용하여 코드를 실행합니다.

    코드를 실행하면 다음 출력이 생성되어야 합니다.

    Found Steve
    

    코드가 실행되지만 이러한 코드 줄은 조밀하고 읽기 어렵습니다. 코드의 서식을 수정하여 if 문, else if 문, 및 else 문 뒤에 줄 바꿈을 포함할 수 있도록 해야 합니다.

  7. 방금 실행한 코드를 다음 코드와 비교합니다.

    string name = "steve";
    
    if (name == "bob")
        Console.WriteLine("Found Bob");
    else if (name == "steve") 
        Console.WriteLine("Found Steve");
    else
        Console.WriteLine("Found Chuck");
    

    두 번째 코드 샘플을 읽는 것이 얼마나 쉬운지 확인합니다.

요약

다음은 문 코드 블록 및 가독성에 대해 if 기억해야 할 몇 가지 중요한 사항입니다.

  • 명령문의 코드 블록 내에 코드 줄이 하나만 나열되어 있는 경우 코드 블록 if-elseif-else 의 중괄호와 공백을 제거할 수 있습니다. Microsoft는 if-elseif-else 문의 모든 코드 블록(일관되게 존재하거나 제거됨)에 중괄호를 일관되게 사용할 것을 권장합니다.
  • 코드를 더 읽기 쉽게 만들 때만 코드 블록의 중괄호를 제거합니다. 중괄호를 포함하는 것은 항상 허용됩니다.
  • 코드를 더 읽기 쉽게 만드는 경우에만 줄 바꿈을 제거합니다. Microsoft는 각 문이 자체 코드 줄에 배치될 때 코드를 더 쉽게 읽을 수 있도록 제안합니다.